Welcome! Log In Create A New Profile

Advanced

Re: [emerg] duplicate listen options for X.X.X.X:80 in /usr/local/etc/nginx/nginx.conf:9

Gena Makhomed
September 06, 2014 09:02AM
On 06.09.2014 14:01, Vadim A. Misbakh-Soloviov wrote:

>> если я 2 раза (или 1 раз) укажу spdy - работать будет всегда в двух
>> случаях и ошибки конфигурации не будет.
>> кажется, что с фильтрами подобная логика была бы уместна.
>>
>> ну и, раз уж оно все равно работает во всех случаях, вероятно, имеет
>> смысл выдавать warning, если указано не во всех (вдруг кто-то будет
>> полагать, что в одном месте у него spdy, а в другом нет).

Да, это было бы вполне логично. Иначе - зачем давать юзеру возможность
выборочно не-указывать параметр spdy, если он всеравно применится везде.

То же самое относится и к параметру ssl - хотя и "listen 1.2.3.4:443;"
в конфиге, но соединения всеравно принимаются только по протоколу https.

> Обычно это делается так:
> в дефолтном catch-all вхосте указываются все эти уникальные опции (которые
> указываются один раз), а у остальных — неуникальные.

Только из документации совсем не понятно, какие из параметров listen
являются уникальными для сервера, а какие - общими для всех серверов.

Похоже, что только опция default_server является специфичной
для сервера, а все остальные - и так общие для всех серверов будут.

| В директиве listen можно также указать несколько дополнительных
| параметров, специфичных для связанных с сокетами системных вызовов.
| Эти параметры можно задать в любой директиве listen, но только один
| раз для указанной пары адрес:порт.

Что только еще больше добавляет путаницы. Прописали параметр
в каком-то одном случайном сервере - а применяется этот параметр
потом во всех серверах с такой же комбинацией ip:port в listen.

Идеальным вариантом с точки зрения легкости чтения/сопровождения
конфига было бы требовать наличия параметра default_server всегда,
если в конфиге присутствует более одного сервера на каком-то сокете.

И все параметры, которые можно задать только один раз - можно задать
только в том единственном сервере, который помечен как default_server,
а общие параметры ssl, spdy и proxy_protocol должны быть указаны
в каждом сервере или ни в одном из них. Если эти условия
не выполняются - тогда пользователю выдается warning.

В результате чтобы понять как работает тот или иной сервер -
надо будет прочитать в конфиге определения максимум двух серверов.

Обратная совместимость не теряется, потому что это только warning,
который не блокирует работу сервера со старой версией конфигурации.

Сейчас - надо просмотреть определения вообще всех серверов на этом
сокете и в случае неочевидной конфигурации - никаких варнингов нет.

--
Best regards,
Gena

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

[emerg] duplicate listen options for X.X.X.X:80 in /usr/local/etc/nginx/nginx.conf:9

Илья Шипицин September 05, 2014 02:20AM

Re: [emerg] duplicate listen options for X.X.X.X:80 in /usr/local/etc/nginx/nginx.conf:9

Oleksandr V. Typlyns'kyi September 05, 2014 03:10AM

Re: [emerg] duplicate listen options for X.X.X.X:80 in /usr/local/etc/nginx/nginx.conf:9

Илья Шипицин September 05, 2014 03:58AM

Re: [emerg] duplicate listen options for X.X.X.X:80 in /usr/local/etc/nginx/nginx.conf:9

mva September 06, 2014 07:04AM

Re: [emerg] duplicate listen options for X.X.X.X:80 in /usr/local/etc/nginx/nginx.conf:9

Gena Makhomed September 06, 2014 09:02AM

Re: [emerg] duplicate listen options for X.X.X.X:80 in /usr/local/etc/nginx/nginx.conf:9

Илья Шипицин September 07, 2014 11:56PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 301
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready