Re: Странное поведение listen
Maxim Dounin
mdounin на mdounin.ru
Чт Дек 16 05:35:18 MSK 2010
Hello!
On Thu, Dec 16, 2010 at 02:46:29AM +0200, Vladislav V. Prodan wrote:
> nginx version: nginx/0.7.67
>
> Имеем
>
> server {
> listen 80;
> listen 81;
> ...
> проксирование
> ...
>
> и с десяток разных доменов с
> listen xx.x.x.25:80;
>
> listen 80; - эта опция напрочь игнорируется и берется ближайший по
> алфавиту домен, имеющий listen xx.x.x.25:80;
>
> Пока и ему тоже принудительно не выставил listen xx.x.x.25:80;
> проксирование не заработало.
>
> ЧЯДНТ
С точки зрения директивы listen - nginx работает точно так же, как
сетевой стек операционной системы с сокетами. Т.е. listen на *:80
может существовать праллельно с listen на ip:80. При этом все
соединения на ip:80 попадут к тому, кто слушает на ip:80, а
слушающему на *:80 достанется остальное.
Т.е. запросы к xx.x.x.25:80 будут обслужены одним из серверов с
listen xx.x.x.25:80 (либо по совпадению server_name, либо
default'ным). Запросы к другим ip-шникам на 80-й порт - могут
быть обслужены сервером с listen 80 (опять же - если серверов
больше одного, то выбор по совпадению server_name или
default'ный).
Кое что по этому вопросу можно прочитать тут:
http://nginx.org/en/docs/http/request_processing.html
http://nginx.org/en/docs/http/server_names.html
Maxim Dounin
Подробная информация о списке рассылки nginx-ru