trouble with forward proxying
jfix
nginx-forum at nginx.us
Fri May 6 20:16:55 MSD 2011
Hello, I've looked far and wide but couldn't find an answer to my
problem.
Here's a quick description: an appserver must use the company's http
proxy for outgoing http requests, but cannot be configured. So I (tried)
set up nginx to act as a forward proxy, like this:
server {
listen 9099;
resolver 10.102.10.14;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass
http://proxy.example.org:80$scheme://$http_host$request_uri;
}
error_log /cygdrive/E/data/logs/forward-proxy-nginx-error.log debug;
access_log /cygdrive/E/data/logs/forward-proxy-nginx-access.log
combined buffer=32k;
}
I couldn't find any config examples where the parent proxy is used in
the proxy_pass directive.
It seems like there is no other way to specify the company proxy than to
add it to the proxy_pass directive.
The error message I get is this, apparently, nginx looks for a colon and
takes the rest as the port number:
2011/05/06 18:01:32 [error] 2420#0: *1 invalid port in upstream
"proxy.example.orghttp://www.google.com/", client: 127.0.0.1, server: ,
request: "GET http://www.google.com/ HTTP/1.1", host: "www.google.com"
If I change the proxy_pass directive to
proxy_pass
http://proxy.example.org:80/$scheme://$http_host$request_uri;
it's the parent proxy that complains that a URL cannot start with a /
character:
The following error was encountered while trying to retrieve the URL: <a
href="/http://www.google.com/">/http://www.g
oogle.com/</a>
I'm at a loss how to continue. Could somebody please help? Thanks very
much in advance, Jakob.
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,196115,196115#msg-196115
More information about the nginx
mailing list