Trouble with forward proxying

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: /http://www.g
oogle.com/

I’m at a loss how to continue. Could somebody please help? Thanks very
much in advance, Jakob.

Posted at Nginx Forum:

On Fri, May 6, 2011 at 11:16 PM, jfix [email protected] wrote:

I’m at a loss how to continue. Could somebody please help? Thanks very
much in advance, Jakob.

I don’t know, perhaps it’s related with nginx’s description?

On Fri, May 06, 2011 at 12:16:55PM -0400, jfix wrote:

location / {
combined buffer=32k;

character:

The following error was encountered while trying to retrieve the URL: /http://www.g
oogle.com/

I’m at a loss how to continue. Could somebody please help? Thanks very
much in advance, Jakob.

nginx is not intended to run as a forward proxy.


Igor S.

2011/5/14 jfix [email protected]:

thanks, I have switched to squid. Jakob.

Squid is Proxy + Caching, it will improve the speed if you have lots
of static files.
But Squid is not compatible as well as Nginx for HTTP/1.1.


Jeff P.
www.DNSbed.com

thanks, I have switched to squid. Jakob.

Posted at Nginx Forum: