服务器nginx反向代理修改url路径

vue项目部署到服务器上,但是后台是别人的服务器,所以我们要利用nginx进行反向代理,将请求发送到别人服务器上。(个人理解,可能不太正确)

这个时候我们就需要辨别哪些是需要发送到别人服务器上的,所以在nginx上进行如下配置

    location /prod-api {
     proxy_pass baidu.com;
    }
  例如你发送的url请求,是以/prod-api开头的话,他会帮你把请求发送给这个服务器。此时你的url请求应该就变成了 baidu.com + 你请求的url 例如 baidu.com/prod-api/user/login。

  但是这样会产生一个问题,就是baidu.com他监听的url中并没有/prod-api/user/login ,只有/user/login。所以我们需要去删除这个 /prod-api。

此时我们应该将上述代码改为如下

    location /prod-api/ {
     proxy_pass baidu.com/;
    }
在baidu.com后面加入 / 他会在合并url请求时,把匹配到的/prod-api/删除掉。此时你的url路径应该就变成了 baidu.com/user/login,就可以正常访问了。

 # 细节

/prod-api/ 和 /prod-api

一定要带上后面那个 / 不然你的路径就会变为 baidu.com//user/login ,导致不能正常访问。
————————————————
版权声明:本文为优快云博主「man杨杨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_55269092/article/details/124948103

### Nginx 反向代理配置排除特定子路径 当配置Nginx作为反向代理时,可以通过调整location指令来实现对某些特定子路径的排除。具体来说,在定义哪些URL模式应该被代理的同时,也可以明确指出不希望被代理的路径。 对于想要排除的子路径,可以在其对应的`location`块中指定处理方式而不涉及反向代理设置;或者更常见的是利用正则表达式的特性先匹配要忽略的路径给予特殊的处理逻辑,比如返回静态页面、拒绝访问等操作[^2]。 下面是一个具体的例子,展示如何配置Nginx以实现代理除 `/excluded/path/` 外的所有请求: ```nginx server { listen 80; server_name example.com; # 对于 /excluded/path/ 下的内容不做任何反向代理,而是直接服务本地文件或其他响应. location ^~ /excluded/path/ { alias /usr/share/nginx/html/exclude/; index index.html index.htm; } # 所有其他请求都将通过反向代理发送给后端服务器 location / { proxy_pass http://backend_server_group; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 在这个配置里,`^~`修饰符用于提高前缀匹配优先级,使得即使存在更精确的正则表达式也能优先应用这个规则。而针对 `/excluded/path/` 的 `location` 块,则指定了该路径下资源的具体处理方法——这里假设是从本地磁盘提供静态HTML页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值