When front proxy meet reverse proxy

Hi:

This is a cross post at
stackoverflowhttp://stackoverflow.com/questions/9872873/when-front-proxy-meet-reverse-proxy,since
I got no answser there,so I post it here.

Since I think my question is related to the reverse proxy.

This is the post body:

In our app,we have make the cross domain ajax request,and we have no
control on the server domain which does not support jsonp,so we try to
use
the proxy.

We have a proxy.ashx on our server,and try to get the data through this
proxy.

So in this case I think our server is the front server to the
client,isn’t
it?

However our server is deployed in the internal network which use the
reverse proxy.

Say I make a requset:

http://ourserver/proxy.ashx?url=http://crossdomainserver&para=xxx.

Then the reverse proxy forward this requst to our server,but our server
have no access to the internet,that’s to say,our server can not access
http://crossdomainserver here.

So I want to know if you guys have met the same suitation,and how to
solve
it?

On Tue, Mar 27, 2012 at 07:43:22PM +0800, maven apache wrote:

Hi there,

I don’t understand your intended data flow.

Can you describe it more explicitly?

In general terms, “something” makes a http request to nginx; that
“something” is “the client”. nginx is configured to proxy_pass a request
related to the original one to a back-end server; that back-end server
is
“upstream”.

client talks to nginx, and gets a response from nginx. The client
doesn’t
know or care about upstream.

nginx talks to upstream and gets a response from upstream. nginx doesn’t
know or care how upstream generates the response.

If a web browser is configured to use a proxy server, then as far as
nginx
is concerned, that proxy server is “the client”, not the web browser.

From your description, it sounds like “some javascript running in the
browser” is “the client”.

It’s not clear (to me) what is “nginx” and what is “upstream”.

If you can explain more, it might help others to answer your question.

f

Francis D. [email protected]

Since I am not good at English,so I make a picture in the attach,hope
you
can get it.

2012/3/28 Francis D. [email protected]

Hi…

I saw the picture but don’t see any problem for nginx there, your
problem in that picture seems to be that you want your backend to
access crossdomain server but your backend do not have internet acces.

If that’s the case, and you don’t need to support thousands of cross
domains, you can configure Nginx to be reverse proxy of cross domain
server and use it to access internet from your backend, so when the
backends want to access crossdomain, it does so through nginx and
nginx indeed have internet access.

One good thing of doing this is that if you are already parsing with
any tool your logs, you will have nice stats of your crossdomain
servers behaviors (eg: backend generation time, etc)

Or maybe I got it all wrong, in that case, please discard this message
:slight_smile:

On Wed, Mar 28, 2012 at 8:16 AM, maven apache [email protected]
wrote:

I don’t understand your intended data flow.


nginx mailing list
[email protected]
nginx Info Page


Guzmn B. Nez
Senior Perl Developer / Sysadmin
Web: http://guzman.braso.info
Mobile: +598 98 674020

On 28 March 2012 15:27, maven apache [email protected] wrote:

backends want to access crossdomain, it does so through nginx and
nginx indeed have internet access.

Can you explain more about use the nginx be the reverse proxy of the cross
domain?

You need to tell nginx it should accept requests for the different
cross-domain FQDNs you’re using, and proxy_pass them in nginx as
appropriate.

Then arrange for your app to make its requests to nginx, not the
unreachable cross-domain server.
You may need to hosts-file the FQDNs on your app server if you can’t
change the app and make it separate its understanding of the HTTP Host
header (“cross.domain.whatever.com”) from the actual IP it should talk
(nginx).

It’s a pretty simple setup.
We could write the nginx config to do this for you, but we’d be
depriving you of the excellent learning experience you’ll get doing it
yourself :wink:

Have fun!

Jonathan

2012/3/28 Guzmn B. [email protected]

Hi…

I saw the picture but don’t see any problem for nginx there, your
problem in that picture seems to be that you want your backend to
access crossdomain server but your backend do not have internet acces.

Yes,this is what I want.

If that’s the case, and you don’t need to support thousands of cross
domains, you can configure Nginx to be reverse proxy of cross domain
server and use it to access internet from your backend, so when the
backends want to access crossdomain, it does so through nginx and
nginx indeed have internet access.

Can you explain more about use the nginx be the reverse proxy of the
cross
domain?