proxy + rewrite
Cliff Wells
cliff at develix.com
Mon Mar 5 23:29:31 UTC 2012
On 03/05/2012 02:46 PM, Alex Alex wrote:
> Hi all,
>
> I'm new with NGINX. What I want to do is a front reverse proxy server
> that rewrites URL.
>
> I actually can make it working with one site, but not with many sites.
>
>
> On my real server:
>
> https://srvabc:1234/mypath/ goes
> https://srvabc:1234/mypath/connexion.do?action=init
>
> and on my NGINX server:
>
> https://www.mynxinx/abc goes
> https://www.mynxinx/abc/connexion.do?action=init
>
> What is not working is to have https://www.mynxinx/def going on another
> server like https://srvdef:4567/anothermypath/
>
> I tried many configurations and the most simple one seems to be the one
> using the request_uri without the / at the beginning (I also tried
> directly with proxy_pass https:/$request_uri;):
>
> upstream abc {
> server srvabc:1234 weight=10 max_fails=3 fail_timeout=30s;
> }
>
> upstream def {
> server srvdef:4567 weight=10 max_fails=3 fail_timeout=30s;
> }
>
> server {
> listen 443 ssl;
> server_name mynxinx;
>
> ssl on;
> ssl_certificate /etc/nginx/cert.pem;
> ssl_certificate_key /etc/nginx/cert.key;
>
> ssl_session_timeout 5m;
>
> ssl_protocols SSLv2 SSLv3 TLSv1;
> ssl_ciphers HIGH:!aNULL:!MD5;
> ssl_prefer_server_ciphers on;
>
> location / {
>
> if ($request_uri ~* ^/(.*)$) {
> set $request_key $1;
> }
>
>
> rewrite /abc /mypath;
> rewrite /def /anothermypath;
>
> proxy_pass https://$request_key;
> proxy_redirect off;
>
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>
> }
> }
>
> What's wrong my my configuration?
>
Instead of this way, consider using the map directive:
http://wiki.nginx.org/HttpMapModule
The example in the synopsis seems very similar to what you are trying to
achieve.
Regards,
Cliff
More information about the nginx
mailing list