<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Доброго времени суток.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>Есть связка apache2 + nginx в кач-ве бэкенда.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Проблема: при аплоде файла размером больше client_max_body_size наблюдается непонятное поведение (скорее всего nginx): в error.log появляется сообщение:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>2007/10/18 17:20:34 [error] 6325#0: *1 client intented to send too large body: 1191520 bytes, client: 87.252.238.164, server: www.site.com, URL: "/settings/", host: "www.site.com", referrer: "https://www.site.com/settings/"</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>После этого по истечении ровно proxy_read_timeout в этом же логе:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>2007/10/18 17:21:34 [error] 6325#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 87.252.238.164, server: www.site.com, URL: "/settings/", upstream: "<A href="https://127.0.0.1:4431/settings/">https://127.0.0.1:4431/settings/</A>", host: "www.site.com", referrer: "https://www.site.com/settings/"</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>При этом никаких признаков 413 вообще нет (проверял IE, FF, Opera, Safari), только в FF и Opera отдается 504 с дефолтовым(!!!) контентом, несмотря на директивы </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>error_page   504 /504.html;</DIV><DIV>location /504.html {                                                        </DIV><DIV>            root  /home/www/htdocs/static;</DIV><DIV>}</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>В логах apache про POST вообще ничего нет, из чего сделал вывод, что затыкается именно на nginx. В логе access.log (nginx) появляется строка:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>87.252.238.164 - - [18/Oct/2007:17:22:53 +0400] "POST /settings/ HTTP/1.1" 504 183 " https://www.site.com/settings/" "Opera/9.23 (Windows NT 5.1; U; en)"</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Но опять же,  вместо кастомной 504 отдается, видимо built in, 504 - Gateway time out</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Долго игрался со всякими timeout'ами в nginx, однако только 1 имеет видимый эффект: proxy_read_timeout. Именно с таким интервалом в error.log отображаются 2 предыдущих сообщения.  Однако, судя по документации, этот параметр определяет таймаут между apache (в моем случае) и nginx.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Интересует возможность отображения кастомной страницы в случае, если размер файла больше client_max_body_size. </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>nginx version: nginx/0.5.31</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Спасибо.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>P.S. <A href="http://sysoev.ru/web/upload.html">http://sysoev.ru/web/upload.html</A> читал.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>P.P.S. В </DIV><DIV><A href="http://sysoev.ru/nginx/docs/example.html">http://sysoev.ru/nginx/docs/example.html</A></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 13px;">proxy_connect_timeout</SPAN></FONT><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 13px;">      </SPAN></FONT><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 13px;">90;</SPAN></FONT></DIV><DIV><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 13px;"><BR class="khtml-block-placeholder"></SPAN></FONT></DIV><DIV><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 13px;">при этом <FONT class="Apple-style-span" face="Verdana" size="3"><SPAN class="Apple-style-span" style="font-size: 12px;"><A href="http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout">http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout</A>:<FONT class="Apple-style-span" face="Times" size="4"><SPAN class="Apple-style-span" style="font-size: 16px;"></SPAN></FONT></SPAN></FONT></SPAN></FONT></DIV><DIV><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 13px;"><FONT class="Apple-style-span" face="Verdana" size="3"><SPAN class="Apple-style-span" style="font-size: 12px;"><FONT class="Apple-style-span" face="Times" size="4"><SPAN class="Apple-style-span" style="font-size: 16px;">Директива задаёт таймаут для соединения с проксированным сервером. Необходимо иметь в виду, что этот таймаут не может быть больше 75 секунд.</SPAN></FONT></SPAN></FONT></SPAN></FONT></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Это просто FYI.</DIV></BODY></HTML>