nginx反向代理如何替换URL
作者:氧化心
这篇文章主要介绍了nginx反向代理如何替换URL问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
前言
nginx 提供反向代理服务,日常开发过程中有时候我们需要使用nginx 作为代理服务根据url的不同去访问不同的服务器或者不同端口,如下提供两种方案。
一、location作用
location作用:根据用户请求的URL来执行
location配置中:
- 当用户请求“/”时,将匹配configuration A
- 当用户请求“/index.html/”时,将匹配configuration B
- 当用户请求“/documents/document.html/”时,将匹配configuration C
- 当用户请求/images/1.gif/时,将匹配configuration D
- 当用户请求/documents/1.(gif|jpg|jpeg)$时,将匹配configuration E
二、直接替换location 匹配部分
1.proxy_pass的目标地址,默认不带/
只代理域名,URL和参数部分不会变(把请求的path拼接到proxy_pass目标域名之后作为代理的URL)
2.proxy_pass目标地址后增加/
则表示把path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址
如下图所示:
代理地址是:192.168.6.122:5840/deep/Plato
以上两个匹配成功后,实际代理的URL分别是
1.location /deep:
- 访问地址:http://10.15.32.22:5840/deep/Plato
- 把/deep/Plato直接拼接到proxy_pass 的地址http://10.15.32.22:5840后面;
2.location /deep/
- 访问地址: http://10.15.32.22:5840/Plato
- 去掉匹配到location /deep/拼接到proxy_pass 的地址http://10.15.32.22:5840后面;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。