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后面;

猜你喜欢

转载自blog.csdn.net/weixin_47139540/article/details/124626338