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