百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

nginx-UrlRewrite 实现URL重写转发

off999 2025-01-20 15:40 26 浏览 0 评论

URL重写

在前后端分离的开发模式中,会遇到这样一个需求:前端通过特定路由前缀来访问后端接口,例如:http://localhost/api/getUser,这里 api 即是每一个前端 request 所多加的前缀。nginx 需要把http://localhost/api/getUser 转换成后端的访问端口及路由,例如:http://localhost:8080/getUser,从而访问服务。

这里就涉及到一个URL重写的的概念,可以使用多种方式来实现,那么这里由于前端程序时通过 webpack 打包后,将静态文件发布在 nginx 上,所以我们需要通过 nginx 的 rewirte 指令来进行 URL 的重写。

location匹配规则

在使用 rewirte 指令前,我们需要先熟悉 location 匹配规则。

这里只涉及一般会用到的语法:

1. = 开头精准匹配,停止搜索并立即处理请求

例:
	location = /login {  
	   #规则A  
	}  
	location / {  
	   #规则B 
	}  
	http://localhost/login 将匹配规则A
	http://localhost/register 则匹配规则B

2. ~ 区分大小写匹配(可用正则表达式)

3. ~* 不区分大小写匹配(可用正则表达式)

	location ~ \.(gif|jpg|png|js|css)$ {  
	   #规则D  
	}  
	location ~* \.png$ {  
	   #规则E  
	} 
	http://localhost/a.PNG 则匹配规则E,
	不会匹配规则D,因为规则E不区分大小写

4. !~ 区分大小写不匹配

5. !~* 不区分大小写不匹配

6. ^~ 如果路径中匹配,那么不测试正则表达式

rewrite 使用规则

1. nginx-rewirte 使用语法:

rewrite regex replacement [flag]; 

2. 参数介绍

  • regex :可以使用正则或者字符串来表示相匹配的地址。
  • replacement:可以表示重定向的地址。
  • flag:指令集,匹配后续动作。取值
  • last、break:目前看来,作用类似,都是重写后停止处理**重写**其他指令。
  • redirect:如果替换字符串不以“ http://”,“ https://”或“ $scheme” 开头,返回带有302代码的临时重定向,浏览器地址会显示跳转后的URL地址。
  • permanent:返回301代码的永久重定向,浏览器地址栏会显示跳转后的URL地址。

3. 使用示例

例如,现在将 http://localhost/api/getUser 请求转发到 http://localhost:8080/getUser,配置如下:

        location ^~ /api/ {
                rewrite  ^/api/(.*)$ /$1 break;
                proxy_pass http://localhost:8080;
        }

location 匹配:路由中匹配到 /api/ 即执行规则。

正则:以 /api/ 开始,子表达式匹配任意多单字符,结束。

tips

1. react(umi)页面刷新404,配置

try_files  $uri $uri/ /index.html;

参考文献

https://www.cnblogs.com/dalaoyang/p/10264919.html

相关推荐

独一无二繁体字网名(独一无二繁体字网名大全)

超复杂网名用繁体字表示就应写成“超複雜”,看看复杂的繁体字“複雜”的写法是蛮复杂,所以简体字的运用大大方便了人们的使用。殺軟嬌貪歡張錯過樂極寵愛兩壹塹長壹牽帶?g??稀爱★?a流.浪.猪爱...

2025组装机配置清单(2020年组装机主流配置)

13代已经出了。现在入手12代英特尔平台性价比最高。这套在3000比较偏显卡,也可以显卡用影驰GTX16504GD6128Bit,价格1100,省下来的钱可以把内存升级为8G×2条16G。Cp...

宗门系统流小说排行榜(宗门系统文)

第一《史上第一祖师爷》作者:八月飞鹰短书评:系统主线任务:林锋开山立派,建立史上第一大宗门,林锋本人成为第一祖师。第二《修真门派掌门路》作者:齐可休书评:本命由天授,同参伴我行逍遥两相对,一道诵黄庭在...

水星路由器设置ip地址(水星路由器的ip地址怎么改)

mercury无线路由器设置IP地址的步骤如下:  1、先将宽带网线插到路由器的wan口,再插入电源插头。  2、在带有无线网卡的笔记本电脑上右击“网上邻居”,选择“属性”。  3、再右击“本地连接”...

正版w10系统多少钱

Windows10家庭版官方价格:888元Windows10专业版价格:1799元Windows10家庭版到专业版升级包价格:879元Windows10企业版价格:4200元Windows10教育版价...

七彩虹(七彩虹显卡)

https://www.colorful.cn/七彩虹于2005年深圳成立。深耕于电脑主机板卡硬件的二十年间,七彩虹完成了三大阶段的战略转型,成功地由计算机零组件代理商蜕变成为拥有自主研发、自主生产、...

华硕驱动下载专区(华硕官方驱动)

从华硕官网下载原装系统可以按以下步骤进行:1.打开华硕官网:https://www.asus.com/cn/。2.将鼠标移动到“支持”菜单上,并点击“驱动与工具”。3.在页面中找到“操作系统”选...

黑客教你破解wifi密码(黑客教你破解wifi密码是多少)

黑客是利用wifi的拼码,或者路由器的加密不强破解的,高级的黑客,在很短的时间内就可以破解密码繁杂的wifi你是用了别人的软件吧太相信别人了什么黑客。带一堆模块的玩意儿也叫黑客?黑客和骇客是两...

高仿ios主题全套软件(超高仿ios安卓主题)

IPhone12启动器全套仿Ios12桌面主题是一款能够让大家的安卓手机秒变苹果机的系统工具,IPhone12启动器可让你的手机直接变成IPhone12的桌面。从主题,桌面,Ui以及系统内的各种细节,...

win10在哪里下载软件最好(win10软件在哪下载比较好)

1、点击Win10系统的开始菜单,然后在点击应用商店;2、打开Win10应用商店后,在搜索框里输入想要搜索的应用软件,然后点击检索;3、点击搜索到的应用,点击安装;4、点击安装后,系统会提示要切换到这...

电脑软件怎么安装(电脑软件怎么安装到手机上)

电脑怎么安装excel软件方法/步骤:1.在电脑左下角找到这个小圆圈,单击小圆圈打开搜索栏。搜索MicrosoftStore。2.在右上角找到搜索,单击搜索。在搜索中输入Excel。回车键打开。3....

u盘win7系统安装盘(u盘里安装win7系统)

有些软件我们从网上下载安装时需要破解密码或者我们没有网时,直接需要把安装的软件,传到别的电脑,具体操作如下:1。直接把另一台电脑桌面上的软件复制或发送的优盘里,其实那只是一个快捷方式2.以ps软件为例...

语音输入法哪个好用(语音输入法免费版下载安装)

日常基本使用的讯飞和搜狗都还不错,对比来看的话,讯飞相对会更好一些。讯飞输入法在键盘输入方面进步非常快,功能也比较全面。单纯的语音方面,讯飞的稍微好一点,例如一些标点、断句之类处理的更加到位。讯飞支持...

手机app应用市场(手机里面的应用市场)

360手机助手是android智能手机的手机管理专家。提供海量的游戏、软件、音乐、小说、视频、图片,通过它轻松下载、安装、管理手机资源。所有提供信息资源,全部经过360安全检测中心的审核认证,绿色无毒...

开局最强系统(开局最强系统txt奇书网)
开局最强系统(开局最强系统txt奇书网)

《最强奶爸系统》作者:最美猪猪小说简介同学甲:“我找到了月入七千的工作。”同学乙:“我找到了月入一万的工作。叶辰,你呢?”叶辰:“我老婆…是万亿市值超凡集团的老板,给我生了10个孩子。”同学们:???叶辰遭前女友陷害,阴差阳错邂逅了一位美女...

2026-01-03 07:03 off999

取消回复欢迎 发表评论: