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