ssi + post
Maxim Dounin
mdounin на mdounin.ru
Вт Окт 12 14:03:51 MSD 2010
Hello!
On Tue, Oct 12, 2010 at 12:12:43PM +0400, Юрий Трушкин wrote:
> Доброго дня. Столкнулся с такой проблемой:
>
> Тестировалось на обычной htm страничке.
> На странице присутствует <!--# include wait="yes"
> virtual="getcomments.p3?id=295364" -->
> get запросом страница отрабатывает отлично, необходимый контент нормально
> догружается ssi
>
> Если же на этой же страничке сделать форму с action на саму себя, с
> передачей любого параметра (независимо от имени, пробовалось и id, и idd и
> тд. тп.)
> method="post" - страница умирает по-таймауту, в логах получаем:
>
> 2010/10/12 11:12:33 [error] 64891#0: *5380667 upstream timed out (60:
> Operation timed out) while reading response header from upstream, client:
> 192.168.1.100, server: www.xxx.ru, request: "POST /test/ HTTP/1.1",
> subrequest: "/getcomments.p3", upstream: "
> http://127.0.0.1:8001/getcomments.p3?id=295364", host: "www.xxx.ru",
> referrer: "http://www.xxx.ru/test"
>
> Если get - работает нормально.
Пост в статический файл убъёт тело запроса, т.е. результирующий
подзапрос из SSI будет содержать заголовок Content-Length, но не
будет содержать тела.
Вообще запросы с телом и SSI совместимы очень слабо, и в общем
случае единственный работающий способ - это делать для инклудов
proxy_pass_request_body off;
proxy_set_header Content-Length "";
Maxim Dounin
Подробная информация о списке рассылки nginx-ru