Re: Пролагивание коннектов при проверке синтаксиса
Maxim Dounin
mdounin на mdounin.ru
Чт Ноя 15 13:55:45 UTC 2018
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