Re: reuseport в конфигах nginx

Илья Шипицин chipitsine на gmail.com
Пт Апр 8 11:25:20 UTC 2016


более или менее типовая ситуация заключается в том, что вы отвечаете по
известному списку днс-имен.
это - недефолтные хосты.

в дефолтном вы делаете


server {
    listen x.x.x.x:80 default accept_filter=httpready;
    listen x.x.x.x:443 default http2 reuseport accept_filter=dataready;
    server_name _;
    access_log off;
    error_log /dev/null;
    location / {
        return 444;
    }
}


и, всякие скрипткидизы, которые тыкают в ip-адрес и ищут уязвимый софт,
перестают вас беспокоить в логах.



или у вас список доменов заранее неизвестен ?


8 апреля 2016 г., 14:41 пользователь navern <livingdeadzerg на yandex.ru>
написал:

> Неудобно, потому что IP адреса не все дефолтные. И необязательно он будет
> всегда на этом сервере, а может мигрировать на другой. Придется еще
> добавлять логику по перемещению "дефолтного" IP и это всё действительно
> неудобно.
>
> Я понимаю, как работают дефолтные хосты, часть IP адресов так и указаны.
> Можете просто поверить на слово, что для части IP адресов дефолтный хост не
> очень работает.
>
> С точки зрения конфигурирования можно решить конечно, но это будет не
> очень удобно. Именно из-за динамического выделения IP. Придется держать
> дефолтный хост отдельно для каждого IP адреса и делать проверки при каждом
> перемещении/удалении IP адреса с сервера.
>
> listen * не подходит, потому что не только nginx слушает 80 и 443 порт на
> сервере.
>
> Пока что уже полез ковыряться в исходниках, сейчас разбираюсь что и как
> работает там:)
>
> On 07.04.2016 22:10, Vadim A. Misbakh-Soloviov wrote:
>
> Ну в нашем случае нам как раз подходит указать везде reuseport явно,
> чтобы он работал всегда. Указывать только в одном месте очень неудобно
> для автоматического конфигурирования.
>
> Ну, почему же? Просто обрабатывайте "дефолтный" хост отдельно от остальных.
> Сначала заполняете его (а то и вообще не трогаете один раз сконфигуряв)
> нужными опциями, кладёте в /etc/nginx/vhosts.d/default/??_bla. Потом уже
> кладёте "основные" в /etc/nginx/vhosts.d/client/site без указания опций в
> listen.
> (пути от балды)
>
>
> Это не очень как раз удобно, потому что проще накатывать конфиг по
> шаблону, с включенными опциями сразу(как в случае с ssl/http2), чем
> перед этим парсить все конфиги и проверять есть ли уже такой IP адрес и
> есть ли там опции(тоже вариант решения проблемы, но мне он нравится пока
> меньше).
>
> 1) http2, вроде как, всё равно будет работать для всех. Ну и лично я его тоже
> только в дефолтном держу.
> 2) зачем проверять? Просто явно генерите дефолтный конфиг. И достаточно будет
> проверять лишь его наличие.
> 3) а чем, кстати, вам не подходит listen * и [::]?
>
>
>
>
>
> _______________________________________________
> nginx-ru mailing listnginx-ru на nginx.orghttp://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160408/f8b25449/attachment.html>


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