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