Добрый день,
Подводные камни очень простые: сокет один, поэтому его настройки
обязаны совпадать в разных виртуальных серверах. Соответственно
нужно либо разрешать указывать опции сокета только в одном месте,
либо проверять, что они таки совпадают. Если же просто давать
пользователям указывать что попало - они начинают указывать разные
настройки в разных блоках server{} и удивляться, почему они таки
не оказываются разными.
Ну в нашем случае нам как раз подходит указать везде reuseport явно,
чтобы он работал всегда. Указывать только в одном месте очень неудобно
для автоматического конфигурирования.
помечайте одну пару IP:PORT как default и на нее вешайте подобные опции.
таким же свойством обладает еще accept_filter
Это не очень как раз удобно, потому что проще накатывать конфиг по
шаблону, с включенными опциями сразу(как в случае с ssl/http2), чем
перед этим парсить все конфиги и проверять есть ли уже такой IP адрес и
есть ли там опции(тоже вариант решения проблемы, но мне он нравится пока
меньше).
Спасибо, Максим, попробую тогда поковыряться в исходниках, задача
выглядит не супер сложной. Как что-то получится, отпишусь.
On 05.04.2016 22:12, Илья Шипицин wrote:
помечайте одну пару IP:PORT как default и на нее вешайте подобные опции.
таким же свойством обладает еще accept_filter
с другой стороны, http2, например, можно навешать на произвольное
количество пар IP:PORT
5 апреля 2016 г., 14:14 пользователь navern <livingdeadz...@yandex.ru
<mailto:livingdeadz...@yandex.ru>> написал:
Добрый день,
Недавно появилась возможно указывать reuseport и это очень удобная
штука, которой мы уже пользуемся.
Правда есть проблема:
Для одной пары IP:PORT можно указывать эту опцию только один раз,
что очень сильно усложняет конфигурацию, особенно автоматическую.
Для ssl и прочих опций такой проблемы нет.
В общем это не очень удобно.
Из того, что пришло в голову: убрать проверку в конфиге на
несколько reuseport для одной пары IP:PORT.
Кто-то уже подобное что-то делал? Порекомендует куда посмотреть и
какие подводные камни могут быть? Пока еще проблема на стадии
осмысления и возможно здравые идеи помогут избежать долгого
втыкания в исходники:) Заранее спасибо.
_______________________________________________
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