Re: Пролагивание коннектов при проверке синтаксиса
kpoxa
kpoxa на kpoxa.net
Чт Ноя 15 14:17:30 UTC 2018
Руками пересчитал количество bind в выводе strace, да, их стало меньше.
Да, этот вариант действительно не рабочий.
Пока что сделано через fake bind, загружаемый через LD_PRELOAD. Костыль,
конечно.
чт, 15 нояб. 2018 г. в 16:55, Maxim Dounin <mdounin at mdounin.ru>:
> Hello!
>
> On Thu, Nov 15, 2018 at 12:42:51PM +0300, kpoxa wrote:
>
> > Добрый день.
> >
> > Не помогает такой вариант:
> >
> > http {
> > server {
> > server_name bind_only;
> > listen 80;
> > listen 443 ssl;
> > location / { return 200;}
> > }
> > server {
> > listen ip10:443;
> > }
> > server {
> > listen ip11:443;
> > }
> > }
> > stream {
> > server {
> > listen ip1:443;
> > }
> > server {
> > listen ip2:443;
> > }
> > server {
> > listen ip3:443;
> > }
> > }
> >
> > Всё равно nginx при проверке синтаксиса делает bind ко всем адресам,
> > которые указаны в listen;
>
> Как я уже писал ранее, если один и тот же порт пытаться
> использовать в разных модулях - будут проблемы.
>
> В приведённой конфигурации - в http-модуле будет создан
> listen-сокет на *:443, а в stream-модуле - сокеты на ip1:443,
> ip2:443, ip3:443. Вероятно, именно попытки bind'а на ip1:443,
> ip2:443 и ip3:443 вы приняли за "делает bind ко всем адресам". На
> самом деле не ко всем, а только к тем, что указаны в
> stream-модуле.
>
> Однако проблема не в этом, а в том, что на Линуксе такая
> конфигурация банально не заработает, так как открыть сокет на
> ip:443 при имеющемся открытом сокете на *:443 - на Линуксе
> нельзя.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20181115/5d8961c4/attachment-0001.html>
Подробная информация о списке рассылки nginx-ru