Проблема с ssi
Igor Sysoev
is at rambler-co.ru
Mon Dec 5 23:37:10 MSK 2005
On Mon, 5 Dec 2005, [windows-1251] Игорь Гердлер wrote:
> Спасибо большое за подсказку и огромное спасибо за Ваши программы!!!
> Действительно не работало из-за отсутствия "/" в конце директивы proxy_pass
>> - proxy_pass http://localhost:40080;
>> + proxy_pass http://localhost:40080/;
> хотя в документации в примерах их нет.
> Не могли бы Вы в двух словах прокоментировать обработку ssi nginx'ом в моем
> случае. Вкратце повторю проблему:
> с backend'а грузится страница /test2.html в ней include virtual страницы
> /footer.html. nginx вместо /footer.html повторно запрашивает /test2.html,
> вновь обрабатывает в ней include virtual... и так далее до бесконечности :о)
> Как только прописал
> proxy_pass http://localhost:40080/;
> вместо
> proxy_pass http://localhost:40080;
> все заработало нормально.
http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_pass
-----------
Кроме того, можно указать, чтобы URI запроса передавалось в том же виде,
как его прислал клиент, а не в в обработанном виде. Во время обработки
* два и более слэшей преобразуются в один слэш: "//" "/";
* убираются ссылки на текущий каталог: "/./" "/";
* убираются ссылки на предыдущий каталог: "/dir/../" "/".
Если на сервер нужно передать URI в необработанном виде, то для этого
в директиве proxy_pass нужно указать URL сервера без URI:
location /some/path/ {
proxy_pass http://127.0.0.1;
}
-----------
Так как в "http://localhost:40080" нет URI, то бэкенду передавался
URI присланный клиентом, то есть, "/test2.html".
На мой взгляд, это ошибка, нужно будет запертить это для подзапросов.
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list