ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Закрытие соединения: nginx возвращает в заголовке "Connection : close"


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Закрытие соединения: nginx возвращает в заголовке "Connection : close"
  • From: Viacheslav Biriukov <v.v.biriukov@xxxxxxxxx>
  • Date: Thu, 22 Aug 2013 16:10:45 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=mIg8V44w5Kf785ZTZYauO2fKxkV4ZHem5NWzQN81nas=; b=bVmZXK/lNd/l0fUgG55J974rXCXwQrlzyXbRFrCFLhUmIjlg1uFkruX82Ef2MBWb53 kovzqXYlSDLby+1rnbupydyJJdQC1AtrPnEYNMzyLwwcRWcDCOFj0CkNySrhTDK5QTZV DiI6OdM0vijPXiGsAqkwek+49L1CE+zhK8nbT6HkLmevftSzb7DUf5Yv1B+s+o3BiC5r muVUAkXqWTLb+pdJwoGnEE49xzMelvN4E8nc7qd5Ggc1jsn9+crPzkDyCQgLhbCJLhlP rV+awdKhM15fKq0OqDTBtF8RWoYVOH25YLxyO6mqdtFlDSjS0PX8tD/bdJYN1qigo2hz fWLQ==
  • In-reply-to: <80433b77465c4862606e2e77a3877a0a.NginxMailingListRussian@forum.nginx.org>
  • References: <80433b77465c4862606e2e77a3877a0a.NginxMailingListRussian@forum.nginx.org>

Привет,

Покажите заголовки запросов.

Спасибо.


22 августа 2013 г., 16:06 пользователь aler <nginx-forum@xxxxxxxx> написал:
Всем, привет !
Я уже поднимал данную проблему, но решил создать еще один топик с полной
информацией.
Итак, 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@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru



--
Viacheslav Biriukov
BR
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.