Проблема с 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