nginx-0.1.43 parser error
Igor Sysoev
is at rambler-co.ru
Thu Sep 22 16:39:05 MSD 2005
On Thu, 22 Sep 2005, Alexander Gnevshev wrote:
> Весьма странно. Вырезка из документации:
>
> *syntax: *proxy_pass_unparsed_uri */[on|off]/*
> *default: *proxy_pass_unparsed_uri off
> *context: *http, server, location
Исправим.
> Почему бы не определять эту директиву на уровне http? Мне было бы очень
> удобно во всех server{} иметь собственное значение по умолчанию. То есть
> допустимые контексты по идее не должны отличаться от proxy_buffers,
> proxy_set_header и пр.
Потому что, proxy_pass работает как alias, то есть, для
location /one/ {
proxy_pass http://localhost/two/;
}
в запросе меняется URI. А URI может быть например, таким:
"/one%2F%2E/page.html". nginx превращает этот URI в /one/page.html,
а proxy_pass - в /two/page.html. Если передавать unparsed uri, то
нужно понять, какая часть в /one%2F%2E/page.html соответствует /one/.
Поэтому, если задано proxy_pass_unparsed_uri, то в URI ничего не меняется,
а для того, чтобы всё работало, как ожидается, то область использования
proxy_pass_unparsed_uri ограничивается:
"proxy_pass_unparsed_uri" can be set for location "/" or given
by regular expression.
Segmentation fault происходит из-за того, что nginx пытается показать
это сообщение для разделов http и server.
> Igor Sysoev wrote:
>
>> On Thu, 22 Sep 2005, Alexander Gnevshev wrote:
>>
>>> Директива "proxy_pass_unparsed_uri on;", помещенная на уровне http,
>>> заставляет nginx вызывать segmentation fault при тестировании
>>> конфигурации.
>>
>>
>> А ей там не место. Теперь будет писать "is not allowed here".
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list