Welcome! Log In Create A New Profile

Advanced

Произвольно обрываются большие POST запросы

June 28, 2012 03:33AM
Во внутренней сети установлен сервер GlassFish 3.1.2, снаружи к нему ходят через reverse proxy на nginx. Всё замечательно работает, кроме одного: при закачке больших файлов (несколько десятков мегабайт) процесс рвётся в произвольный момент (но изредка закачка всё же проходит). При этом мелкие файлы (до мегабайта) закачиваются влёт. При работе напрямую с сервером GlassFish файлы любого объёма закачиваются без проблем.

Снял дебаг-логи с nginx и дампы сетевой активности от клиента до nginx и от nginx до GlassFish, двое суток их изучал - просветления не наступило. Видно только, что в какой-то момент во время закачки соединение неожиданно закрывается клиентом, причём на одном и том же файле это может случиться и через сотню килобайт, и через несколько мегов - закономерности не найдено.

Я подозреваю, что с проблемой неустойчивой работы POST запросов до меня кто-то уже сталкивался, поэтому надеюсь услышать соображения общего характера, что можно в такой ситуации проверить/перенастроить. При необходимости могу выложить все мегабайты логов и дампов для успешных и неуспешных запросов.

uname -rsm:

FreeBSD 8.3-RELEASE-p3 amd64

nginx -V:

nginx version: nginx/1.2.1
TLS SNI support enabled
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --with-debug --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --with-http_stub_status_module --with-pcre --with-http_ssl_module

nginx.conf:

worker_processes 2;

events {
use kqueue;
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

tcp_nopush on;
tcp_nodelay on;
sendfile on;
keepalive_timeout 65;

include vhost/*.conf;
}

vhost/eirc.conf:

server {
listen aaa.bbb.ccc.ddd;
server_name eirc.xxx.ru;

access_log /var/log/nginx/eirc-acc.log;
error_log /var/log/nginx/eirc-err.log debug;

client_max_body_size 1024m;

location = / {
rewrite ^ /eirc/ permanent;
}

location /eirc/ {
proxy_buffering off;
proxy_pass http://192.168.1.103:8080/eirc/;
proxy_pass_header Set-Cookie;
proxy_pass_header Content-Length;
proxy_set_header Cookie $http_cookie;
proxy_http_version 1.1;
}
}

Параметры "proxy_pass_header Content-Length" и "proxy_http_version 1.1" появились в конфиге во время поиска путей решения проблемы и никакого влияния не оказали.

Надеюсь, кто-нибудь подтолкнёт меня в правильном направлении. А то скоро волос на моей голове совсем не останется. :-(
Subject Author Posted

Произвольно обрываются большие POST запросы

RedRat June 28, 2012 03:33AM

Re: Произвольно обрываются большие POST запросы

RedRat June 29, 2012 09:43AM

Re: Произвольно обрываются большие POST запросы

Daniel Podolsky June 29, 2012 10:02AM

Re: Произвольно обрываются большие POST запросы

Maxim Dounin June 29, 2012 10:02AM

Re: Произвольно обрываются большие POST запросы

RedRat June 29, 2012 10:37AM

Re: Произвольно обрываются большие POST запросы

Maxim Dounin June 29, 2012 11:22AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 313
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready