Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: server_name bug
В чт, 30/10/2008 в 17:42 +0200, Alex Vorona пишет:
> 30.10.2008 15:51, MZ wrote:
> > В чт, 30/10/2008 в 15:19 +0200, Alex Vorona пишет:
> >> 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?
> >
> > Ах, какое горе. Придется обрабатывать с rcvbug=8k, таки да.
> > И, собственно, что с того ? Вы действительно считаете, что правильней
> > будет игнорировать первый виртхост и направить запрос во второй, раз уж
> > размеры буферов не совпадают ?
> да, иначе зачем настраивать буфера, если они могут игнорироваться при
> попадании в другой сокет. Это
> не есть ожидаемое поведение. Начнётся хаос :). В случае ручного указания IP в
> listen, дополнительно
> к listen *:80, возможность попадания запроса, предназначенного этому
> виртхосту, в другой сокет с
> другими буферами будет видна из конфига этого виртхоста.
Могу задать точно такой же вопрос - зачем игнорировать хидер Host: и
директиву server_name, если настроены буфера ? Ведь если игнорировать
протокол HTTP/1.1 - начнет хаос :)
|