介绍Nginx服务器的反向代理proxy_pass配置方法讲解,包括经常被提到的url的/问题的相关说明,需要的朋友可以参考下
就普通的反向代理来讲
Nginx的配置还是比较简单的,如:
1
2
3
4 location ~ /* {proxy_pass http://127.0.0.1:8008;}
或者可以
1
2
3
4 location /{proxy_pass http://127.0.0.1:8008;}
Apache2的反向代理的配置是:
1 ProxyPass /ysz/ http://localhost:8080/
然而,如果要配置一个相对复杂的反向代理
Nginx相对Apache2就要麻烦一些了
比如,将url中以/wap/开头的请求转发到后台对应的某台server上
可以再Nginx里设置一个变量,来临时保存/wap/后面的路径信息
1
2
3
4
5
6
7
8
9 location ^~ /wap/{if ($request_uri ~ /wap/(\d+)/(.+)){set $bucketid $1;set $params $2;}proxy_pass http://mx$bucketid.test.com:6601/$params;}
也可以首先rewrite一下,然后再代理:
1
2
3
4 location ^~ /wap/{rewrite /wap/(\d+)/(.+) /$2?$args break;proxy_pass http://mx$1.test.com:6601;}
或者
1
2
3
4 location ~* /wap/(\d+)/(.+){proxy_pass http://mx$1.test.com:6601/$2?$args;}
注意上面最后的?$args,表明把原始url最后的get参数也给代理到后台