Re: Запрет неправильного host для ipv6

Maxim Dounin mdounin at mdounin.ru
Tue Aug 26 20:13:38 UTC 2014


Hello!

On Tue, Aug 26, 2014 at 02:38:22PM -0400, iprok wrote:

> Здравствуйте! Классической конструкцией для запрета запросов с неправильным
> полем Host: является
> 
> server {
>                 listen 80 default_server;
>                 return      444;
> }
> 
> Но что делать для ipv6? В ipv6 нельзя сделать несколько раз listen на один и
> тот же ip:port, так что вышеприведенная конструкция работать не будет. Есть
> варианты кроме как использовать нерекомендуемый if, анализируя переменную
> $host ?

Для ipv6, равно как и для ipv4, можно писать listen-сокет в 
конфиге сколько угодно раз - nginx создаст один сокет, сделает 
один системный вызов listen(), и будет распределять запросы между 
блоками server{}, в которых используется соответствующий 
listen-сокет, в соответствии с заголовком Host.

Т.е. делать ровно так же:

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        return 444;
    }

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru