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实现跨域使用字体文件的配置方法,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • nginx并发数限制limit_conn基本语法

    nginx并发数限制limit_conn基本语法

    这篇文章主要为大家介绍了nginx并发数限制limit_conn基本语法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • nginx静态资源的服务器配置方法

    nginx静态资源的服务器配置方法

    Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,同时现在也很流行动静分离,就可以通过Nginx来实现,这篇文章主要介绍了nginx静态资源的服务器配置方法,需要的朋友可以参考下
    2022-07-07
  • Nginx防止直接用IP访问Web服务器的设置方法

    Nginx防止直接用IP访问Web服务器的设置方法

    看了很多Nginx的配置,好像都忽略了ip直接访问Web的问题,这样理论上不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面
    2012-09-09
  • 详解nginx中的日志配置

    详解nginx中的日志配置

    日志对于统计排错来说非常有利的,本文为大家总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache等内容,感兴趣的小伙伴可以了解下
    2023-08-08
  • 利用Nginx代理如何解决前端跨域问题详析

    利用Nginx代理如何解决前端跨域问题详析

    这篇文章主要给大家介绍了关于利用Nginx代理如何解决前端跨域问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08
  • 总结Nginx 的使用过程中遇到的问题及解决方案

    总结Nginx 的使用过程中遇到的问题及解决方案

    这篇文章主要总结了Nginx 的使用过程中遇到的问题及解决方案,非常的简单实用,以后遇到相关问题还会继续更新,希望大家收藏关注
    2014-10-10
  • Nginx的405 not allowed错误解决方法

    Nginx的405 not allowed错误解决方法

    本文主要介绍了Nginx的405 not allowed错误解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Nginx环境下WordPress的多站点功能配置详解

    Nginx环境下WordPress的多站点功能配置详解

    WordPress的多站点功能允许安装一个WordPress程序的情况下,实现多个站点也就是一套程序,可以绑定多个域名或子域名,本文详细介绍了在Nginx环境下WordPress的多站点功能配置方法
    2018-10-10
  • 关于nginx负载均衡和反向代理的讲解

    关于nginx负载均衡和反向代理的讲解

    这篇文章主要介绍了nginx负载均衡和反向代理,具有很好的参考价值,希望对大家有所帮助,大家一起来看看吧
    2021-09-09

最新评论