tjlp at sina.com tjlp at sina.com
Tue Mar 7 01:37:54 UTC 2017

Hi, Alexks,

I try your proposal and it doesn't work. Actually my issue is the same as this one http://stackoverflow.com/questions/5100971/nginx-and-proxy-pass-send-connection-close-headers.

1. I add "keeplive_request 0". The result is that the "Connection: close" header is sent to client for every response. That does not match my requirement. Our application decides whether to finish the application session using this header.

2. I add "proxy_pass_header Connection". Nginx keeps sending  "Connection: keep-alive" header to client even the header is "Connection: close" from upstream server.

Seems Nginx has some special handling for the Connection header in response. The openresty author suggests that the only way for changing response header change the nginx C code for this issue. See this issue: https://github.com/openresty/headers-more-nginx-module/issues/22#issuecomment-31585052.

Liu Peng
----- 原始邮件 -----
发件人:Aleksandar Lazic <al-nginx at none.at>
收件人:tjlp at sina.com
抄送人:nginx <nginx at nginx.org>
日期:2017年03月04日 17点22分

Hi Liu Peng.
Am 04-03-2017 09:12, schrieb tjlp at sina.com:
> Hi, Alexks,
> I don't want to hide the header.
> My problem is that Nginx change the "Connection: close" header in the
> reponse from upstream server to "Connction: keep-alive" and send to
> client. I want to keep the original "Connection: close" header.
Ah that's a clear question.
It took us only 3 rounds to get to this clear question ;-)
So now the standard Questions from me:
What's the output of nginx -V ?
What's your config?
Maybe you have set 'keepalive' in the upstream config
'proxy_http_version 1.1;'
as a last resort you can just pass the header with
'proxy_pass_header Connection;'.
Choose the solution which fit's to your demand.
I can only guess due to the fact that we don't know your config.
May I ask you to take a look into this document, which exists in several
languages, thank you very much.
Best regards
> Thanks
> Liu Peng
> ----- 原始邮件 -----
> 发件人:Aleksandar Lazic <al-nginx at none.at>
> 收件人:tjlp at sina.com
> 抄送人:nginx <nginx at nginx.org>
> 主题:Re:_回复:Re:_Issue_about_nginx_removing_the_header_"Connection"_in_HTTP_response?
> 日期:2017年03月03日 16点19分
> Hi.
> then one directive upward.
> http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header
> Cheers
> aleks
> Am 03-03-2017 06:00, schrieb tjlp at sina.com:
>> Hi,
>> What I mention is the header in response from backend server. Your 
>> answer about proxy_set_header is the "Connection" header in request.
>> Thanks
>> Liu Peng
>> ----- 原始邮件 -----
>> 发件人:Aleksandar Lazic <al-nginx at none.at>
>> 收件人:nginx at nginx.org
>> 抄送人:tjlp at sina.com
>> 主题:Re: Issue about nginx removing the header "Connection" in HTTP 
>> response?
>> 日期:2017年03月03日 06点25分
>> Hi.
>> Am 01-03-2017 08:29, schrieb tjlp at sina.com:
>>> Hi, nginx guy,
>>> In our system, for some special requests, the upstream server will
>>> return a response which the header includes "Connection: Close".
>>> According to HTTP protocol, "Connection" is one-hop header.
>>> So, nginx will remove this header and the client can't do the 
>>> business
>>> logic correctly.
>>> How to handle this scenario?
>> you mean something like this?
>> http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header
>> If the value of a header field is an empty string then this field will
>> not be passed to a proxied server:
>> proxy_set_header Connection "";
>>> Thanks
>>> Liu Peng
>>> _______________________________________________
>>> nginx mailing list
>>> nginx at nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20170307/7e22b4ac/attachment.html>

More information about the nginx mailing list