server_name bug

Eugene Janusov eugene at annah.ru
Thu Oct 30 16:39:30 MSK 2008


On 31.10.08 00:19, Alex Vorona wrote:
> 22.10.2008 16:06, MZ wrote:
>> В ср, 22/10/2008 в 16:25 +0400, Igor Sysoev пишет:
>>> Проблема в том, что две нижеприведённые конфигурации должны работать
>>> одинаково:
>>>
>>> server {
>>> listen *:80;
>>> server_name example.org;
>>> }
>>> server {
>>> listen 1.2.3.4:80;
>>> server_name default;
>>> }
>>>
>>>
>>> server {
>>> listen *:80 default rcvbuf=16k;
>>> server_name example.org;
>>> }
>>> server {
>>> listen 1.2.3.4:80 default rcvbuf=8k;
>>> server_name default;
>>> }
>>>
>>> И они сейчас работают одинаково, несмотря на то, что в первом случае
>>> используется один сокет, а во втором - два.
>>
>> Это не проблема, в обоих конфигурациях меняются только параметры
>> слушающих сокетов, а конфигурация виртхостов сохраняется идентичной и
>> таковой, что http-запрос с Host: example.org соответствует первому
>> виртхосту а не второму.
>
> во втором случае http-запрос на IP 1.2.3.4 с Host: example.org попадёт в
> сокет 1.2.3.4:80 с его rcvbuf=8k. Как в этом случае отработать этот
> запрос в первом виртхосте с его сокетом с rcvbuf=16k?

Сначала выбираем все server, для которых прописан listen 1.2.3.4:80 
и/или listen *:80, затем среди них ищем наиболее точное совпадение Host: 
с указанными значениями server_name. И только если подходящего варианта 
не найдено используем server_name default.

Так разве не будет работать?

-- 
Best regards,
Eugene Janusov.





More information about the nginx-ru mailing list