系列文章目录
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分别是
- 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后面;