Nginx forward prxoy problem when header contains 'Proxy-Connection: keep-alive'

hi, when i use nginx as a forward prxoy, some page can not be downloaded
successfully.
example:
http_proxy=ip:port wget -O test.html
http://s1.ganjistatic1.com/css/base_ue3_house.__1276756225__.css--header='Proxy-Connection:
keep-alive’ -S
the received data length always less than response heade specificed
length,
so wget will retry again and again.
if use ie or firefox, the page load very slow, I guess the browser retry
many times like wget.
but if not sent header ‘Proxy-Connection: keep-alive’, the page can be
downloaded successfully.
Any one has idea?
thanks.

the nginx config file:
server { # simple load balancing
listen 9681;
resolver 202.106.0.20;
location / {
proxy_pass http://$http_host$request_uri;
}
}

the nginx version is 0.7.65-5 ,
os is debian Linux dev 2.6.30-1-amd64

Hello!

On Mon, Jun 21, 2010 at 04:08:25PM +0800, xuzheng wrote:

hi, when i use nginx as a forward prxoy, some page can not be downloaded
successfully.

nginx isn’t forward proxy, and it know nothing about
Proxy-Connection. If server you are connecting to happens to keep
connection alive due to “Proxy-Connection: keep-alive” header -
the behaviour you see is quite expected.

You have to manually remove this header from request via something
like

proxy_set_header Proxy-Connection "";

Or, much better, just don’t use nginx as forward proxy.

Maxim D.

xuzheng at 2010-6-21 16:08 wrote:

but if not sent header ‘Proxy-Connection: keep-alive’, the page can be
downloaded successfully.
Any one has idea?
Nginx does not support keepalive connection with backend server.

Maybe you should remove the header of “proxy-connection” like this:

proxy_set_header Proxy-Connection “”;


Weibin Y.

thanks, after remove the header, it works well.

2010/6/21 Weibin Y. [email protected]

thanks,Maxim D. :slight_smile:
I must use your remove-header way, because I am building a test env like
online, for example,
when tester visits our site page( same to online url )with proxy, nginx
forward to test machine,
but when he visits outer-site page ,nginx forward to outer.
other forward proxy such as squid doesn’t seems to have such feature.
Indeed, in this case ,this nginx is a forward-reverse proxy.

2010/6/21 Maxim D. [email protected]