Всем, привет ! Я уже поднимал данную проблему, но решил создать еще один топик с полной информацией. Итак, NGINX:
nginx version: nginx/1.4.1 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-54) TLS SNI support disabled configure arguments: --user=nginx --group=nginx --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-http_secure_link_module --with-http_random_index_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_perl_module --with-http_xslt_module --with-debug --with-mail --with-mail_ssl_module --with-cc-opt='-O2 -g -m64 -mtune=generic' --with-ipv6 --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/nginx-upstream-fair --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/nginx-upload-progress-module --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/mod_zip --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/nginx_mod_h264_streaming --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/nginx-push-stream-module --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/nginx_upstream_hash --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/nginx-memcached-hash-pass --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/echo-nginx-module --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/ngx_http_gunzip_filter_module --add-module=/usr/src/redhat/BUILD/nginx-1.4.1/headers-more-nginx-module Есть back-end (JBOSS) и front-end (NGINX). На nginx настроено проксирование и включен keep-alive: http{ ... keepalive_timeout 45 45; keepalive_requests 1000; ... } ... server{ ... location /our-portal/ { proxy_pass http://127.0.0.1:8080; break; error_page 404 = @404; error_page 502 = @502; error_page 504 = @504; } ... } если дергать нужный мне ресурс напрямую с back-end(JBOSS), то приходит следующий заголовок: Заголовок ответа: --------------------------------------------------------------- Accept-Ranges bytes Cache-Control no-cache Content-Type application/x-javascript; charset=UTF-8 Date Thu, 22 Aug 2013 11:46:04 GMT, Thu, 22 Aug 2013 11:46:04 GMT Server Restlet-Framework/2.0.14 Transfer-Encoding chunked Vary Accept-Charset, Accept-Encoding, Accept-Language, Accept --------------------------------------------------------------- Если делать запрос через front-end, то NGINX возвращает следующее: --------------------------------------------------------------- Cache-Control no-cache Connection close Content-Encoding gzip Content-Type application/x-javascript; charset=UTF-8 Date Thu, 22 Aug 2013 11:45:25 GMT Server nginx Vary Accept-Encoding, Accept-Charset, Accept-Encoding, Accept-Language, Accept --------------------------------------------------------------- Как видно из последнего запроса, nginx шлет ответ клиенту и не позволяет переиспользовать имеющийся коннекшн, присылая "Connection : close". Это касается всех ресурсов, которые запрашивает nginx c back-end. Если ресурс на nginx не пробрасывается на прокси или данные берутся из memcached (подключен соответсвующий модуль), то nginx исправно присылает "Connection : keep-alive". Как побороть данную проблему ? Как заставить nginx возвращать keep-alive соединения клиенту при получении данных с прокси ? Есть предположение, что он это делает, поскольку данные - динамические, и nginx не знает размер данных, отдаваемых клиенту, и для страховки запрещает переиспользовать соединение, по которому передаются данные неизвестного размера. Были мысли, чтобы nginx буферизировал данные с прокси, а потом проставлял размер ответа и возвращал keep-alive (не врядли это возможно). С другой стороны согласно документации Http-1.1 позволяет использовать keep-alive совместно с chunked. Есть какие-то мысли относительно данной проблемы ? Заранее благодарю всех, кто откликнется! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,242120,242120#msg-242120 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru