Nginx重定向与重写

时间:2014-10-06 17:31:47

标签: nginx

假设我想重定向像

这样的URI
http://server1:8081/test/admin/option?options
http://server1:8081/test/admin/option/suboption?options
http://server1:8081/test/admin/option/suboption/subsuboption?options

http://server2:8080/tomcat/admin/option?options
http://server2:8080/tomcat/admin/option/suboption?options
http://server2:8080/tomcat/admin/option/suboption/subsuboption?options

我必须使用哪些nginx规则?我尝试了以下但是它不起作用

location =/test/admin {
  proxy_pass http://server2:8080/tomcat/admin;
  proxy_redirect off;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

1 个答案:

答案 0 :(得分:1)

沿着这些方向尝试一下..

location /test/admin {
    rewrite ^/test/admin(.*)$ /tomcat/admin$1;
}

location /tomcat/admin {
    internal;
    proxy_pass http://server2:8080;
    […]
}

即,将请求重写为" tomcat / admin"您可以选择仅对internal requests开放。

在该位置区块中,您可以proxy pass请求。