navern
April 08, 2016 10:22AM
В общем поковырялся недолго в исходниках. Простым патчем врубил
reuseport всегда, вне зависимости от того, что в конфигах находится.
Может кому-то еще пригодится, хотя это конечно хак.

diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c

index 5a53bac..5bb8de2 100644

--- a/src/core/ngx_connection.c

+++ b/src/core/ngx_connection.c

@@ -472,7 +472,7 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle)



#if (NGX_HAVE_REUSEPORT)



- if (ls[i].reuseport) {

+ if (1 || ls[i].reuseport) {

int reuseport;



reuseport = 1;





On 08.04.2016 14:54, navern wrote:
> На одном из серверов около 11 тысяч виртуальных хостов в nginx'е.
> Бывает и больше:) Серверов тоже далеко не десять.
>
> Неизвестен заранее ни список IP адресов, ни список имен.
>
> Вариант с созданием для каждого IP адреса конфига в виде:
> <ip_addr>.conf и внутри дефолтным сервером конечно решает задачу, но
> для динамически выделяемых IP адресов не совсем подходит. Поэтому пока
> буду пытаться решать иначе.
>
> On 08.04.2016 14:25, Илья Шипицин wrote:
>> более или менее типовая ситуация заключается в том, что вы отвечаете
>> по известному списку днс-имен.
>> это - недефолтные хосты.
>>
>> в дефолтном вы делаете
>>
>>
>> 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
>> <mailto: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 list
>>> nginx-ru@nginx.org <mailto:nginx-ru@nginx.org>
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru@nginx.org <mailto:nginx-ru@nginx.org>
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>>
>>
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

reuseport в конфигах nginx

navern April 05, 2016 05:16AM

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

Maxim Dounin April 05, 2016 09:52AM

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

Илья Шипицин April 05, 2016 03:14PM

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

navern April 07, 2016 09:42AM

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

mva April 07, 2016 03:12PM

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

navern April 08, 2016 05:44AM

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

Илья Шипицин April 08, 2016 07:26AM

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

navern April 08, 2016 07:56AM

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

navern April 08, 2016 10:22AM

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

mva April 08, 2016 12:34PM

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

Валентин Бартенев April 08, 2016 09:44PM

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

navern April 11, 2016 08:16AM

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

Валентин Бартенев April 11, 2016 09:50AM

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

navern April 11, 2016 10:00AM

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

Evgeniy Berdnikov April 11, 2016 11:08AM

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

Валентин Бартенев April 11, 2016 11:14AM

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

navern April 12, 2016 08:56AM

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

Evgeniy Berdnikov April 12, 2016 11:24AM

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

Валентин Бартенев April 12, 2016 11:32AM

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

Peter Leonov April 12, 2016 01:48PM

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

Валентин Бартенев April 12, 2016 03:46PM

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

Peter Leonov April 12, 2016 04:50PM

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

Валентин Бартенев April 12, 2016 05:02PM

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

Maxim Dounin April 13, 2016 12:24PM

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

navern April 19, 2016 10:46AM

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

Evgeniy Berdnikov April 20, 2016 04:00AM

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

navern April 20, 2016 04:04AM

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

Evgeniy Berdnikov April 20, 2016 04:20AM

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

navern April 20, 2016 04:40AM

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

Evgeniy Berdnikov April 20, 2016 05:02AM

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

navern April 20, 2016 05:14AM

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

Evgeniy Berdnikov April 20, 2016 05:40AM

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

navern April 20, 2016 06:52AM

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

Dmitry Ivanov April 12, 2016 05:02PM

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

Maxim Konovalov April 13, 2016 07:48AM

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

Илья Шипицин April 13, 2016 07:58AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 272
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready