when front proxy meet reverse proxy

6 views
Skip to first unread message

maven apache

unread,
Mar 27, 2012, 7:43:22 AM3/27/12
to ng...@nginx.org
Hi:

This is a cross post at stackoverflow,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?



maven apache

unread,
Mar 28, 2012, 10:27:07 AM3/28/12
to ng...@nginx.org


2012/3/28 Guzmán Brasó <guzman...@gmail.com>
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?
 

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 :)


On Wed, Mar 28, 2012 at 8:16 AM, maven apache <apache...@gmail.com> wrote:
> Since I am not good at English,so I make a picture in the attach,hope you
> can get it.
>
>
> 2012/3/28 Francis Daly <fra...@daoine.org>
>>
>> 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 Daly        fra...@daoine.org
>>
>> _______________________________________________
>> nginx mailing list
>> ng...@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx
>
>
>
> _______________________________________________
> nginx mailing list
> ng...@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx



--
Guzmán Brasó Núñez
Senior Perl Developer / Sysadmin
Web: http://guzman.braso.info
Mobile: +598 98 674020

_______________________________________________
nginx mailing list
ng...@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Jonathan Matthews

unread,
Mar 28, 2012, 12:01:58 PM3/28/12
to ng...@nginx.org
On 28 March 2012 15:27, maven apache <apache...@gmail.com> wrote:
> 2012/3/28 Guzmán Brasó <guzman...@gmail.com>

>> 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?

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 ;-)

Have fun!

Jonathan

Reply all
Reply to author
Forward
0 new messages