Nginx路径重写方式

 更新时间:2023年12月25日 10:32:36   作者:左手八嘎呀路  
这篇文章主要介绍了Nginx路径重写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Nginx路径重写

问题

经常遇到前后端分离项目部署时候,前端请求的路径会多加一层路径

比如我的

  • ​前端地址是:http://baidu.com,后端地址是:http://taobao.com
  • 那么前端如果直接写死后端地址的话,一是要处理跨域问题,二是如果后端换地址需要改前端代码
  • 最好的办法就是通过反向代理,比如http://baidu.com/api然他指向http://taobao.com,把**/api**替换掉就好了
  • 像vue有vue.config.js中配置反向代理来重写路径,但实际环境大多数是用专门的反向代理

直接设置为后端的真实地址

需要改前端代码,如果部署多个服务器就要改n次,很不灵活,而且存在跨域问题也要解决

利用宝塔的nginx配置反向代理

虽然可以配置,但是存在奇怪的bug,设置了内容替换,在的服务器可以生效,有的不能生效

解决

宝塔直接设置反向代理 *FAIL

配置文件:

location /stage-api
{
    proxy_pass http://127.0.0.1:6501;
    proxy_set_header Accept-Encoding "";
    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 REMOTE-HOST $remote_addr;
    
    #add_header X-Cache $upstream_cache_status;
    
    #Set Nginx Cache
    
    proxy_set_header Accept-Encoding "";
	sub_filter "/stage-api" "/";
    sub_filter_once on;
    	add_header Cache-Control no-cache;
}

主要就是用到sub_filter

通过一番检索说sub_filter需要把gzip关闭才可以用,否则不生效,但我关了还是不生效

修改配置文件 *PASS

修改后的配置文件如下:

location /stage-api
{
    proxy_pass http://127.0.0.1:6501;
    proxy_set_header Accept-Encoding "";
    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 REMOTE-HOST $remote_addr;
    
    #add_header X-Cache $upstream_cache_status;
    
    #Set Nginx Cache
    
    proxy_set_header Accept-Encoding "";
	#sub_filter /stage-api /;
    #sub_filter_once on;
    rewrite  ^/stage-api/(.*)  /$1 break;
    	add_header Cache-Control no-cache;
}

注释掉sub_filter

用 rewrite完美解决!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • nginx变量的使用详解

    nginx变量的使用详解

    这篇文章主要介绍了nginx变量的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • nginx负载均衡配置,宕机自动切换方式

    nginx负载均衡配置,宕机自动切换方式

    这篇文章主要介绍了nginx负载均衡配置,宕机自动切换方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • nginx cache不缓存问题的原因与解决方案

    nginx cache不缓存问题的原因与解决方案

    最近在工作中遇到了一个问题,发现nginx cache居然不缓存,后来通过查找网上的资料找到了原因和解决方案,下面整理好分享给大家,同样遇到这个问题的朋友们可以参考借鉴,下面和小编一起来学习学习吧。
    2016-10-10
  • Nginx服务器限制IP访问的各种情况全解析

    Nginx服务器限制IP访问的各种情况全解析

    这篇文章主要介绍了Nginx服务器限制IP访问的各种情况全解析,包括限制同一IP在一段时间内的访问次数和全局限IP访问以及限制IP访问指定目录等情况,需要的朋友可以参考下
    2015-08-08
  • nginx-rtmp-module构建流媒体直播服务器实战指南

    nginx-rtmp-module构建流媒体直播服务器实战指南

    本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • Nginx中配置防盗链的方法实现

    Nginx中配置防盗链的方法实现

    在数字化时代,保护网站内容免受盗链至关重要,Nginx防盗链通过检查请求头Referer字段来拒绝非法来源请求,本文就来详细的介绍一下,感兴趣的可以了解一下
    2024-10-10
  • Nginx的伪静态配置中使用rewrite来实现自动补全的实例

    Nginx的伪静态配置中使用rewrite来实现自动补全的实例

    这篇文章主要介绍了Nginx的伪静态配置中使用rewrite来实现自动补全的实例,文中对rewrite的相关参数和正则表达使用也做了介绍,需要的朋友可以参考下
    2015-12-12
  • Crontab和Shell脚本切割Nginx日志使用详解

    Crontab和Shell脚本切割Nginx日志使用详解

    这篇文章主要为大家介绍了Crontab和Shell脚本切割Nginx日志,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Nginx中worker connections问题的解决方法

    Nginx中worker connections问题的解决方法

    这篇文章主要介绍了Nginx中worker connections问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Nginx实现清除缓存内容

    Nginx实现清除缓存内容

    NGINX可以从缓存中删除旧的和过期的缓存文件,本文主要介绍了Nginx实现清除缓存内容,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08

最新评论