- 在我们的前后端开发过程中,如果前端页面在请求后台服务器的时候,在url中都会存在/api这个请求前缀,但是我们的后台服务接口中却没有/api的路径,那么在不修改服务端代码的情况下,我们可以通过nginx来轻松解决这个问题。
- 前端请求路径为:http://192.168.xxx.xxx:8080/api/users/1725808854490013697
- 实际上后端只存在的接口为:http://192.168.xxx.xxx:8080/users/1725808854490013697
- 那么这种情况下,代码不经过修改的前提下,前端是无法正常访问后端接口
- 为了实现上面的需求,我们可以通过nginx进行路径的重写然后再转发到服务器
-
我们需要在nginx的nginx.conf的配置文件中,添加以下反向代理的配置即可实现当前功能
1.javalocation ^~ /api/ { # 路径重写 rewrite ^/api/(.*)$ /$1 break; # 反向代理配置,将请求转发到指定的服务 proxy_pass http://192.168.xxx.xxx:8080; } -
指令的详细说明
-
location ^~ /api/
-
"^~":表示普通字符串匹配上以后不再进行正则匹配
-
以/api/开头的请求,都会匹配上
-
-
rewrite ^/api/(.*) /1 break;
-
rewrite:路径重写
-
这里写的是一个正则表达式,代表如果请求路径是以
/api/开头,后面的请求路径任意,此时将原始的url路径重写为/$1,这里的$1指代的就是通配符 .* 这一块的内容。比如:html/api/users/1725808854490013697 -------> ^/api/(.*)$ --------> 此时 (.*) 匹配的就是 users/1725808854490013697 ------> 最终重写为/$1 即 /users/1725808854490013697
-
-
proxy_pass http://192.168.xxx.xxx:8080;
-
proxy_pass:反向代理
-
路径重写后的请求,将会转发到后端的http://192.168.xxx.xxx:8080服务器
-
-
-
如何在nginx中进行路径的重写并进行转发到指定服务器
upton-nan2023-11-28 11:05
相关推荐
Decay__7 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查贞明电子9 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南万联WANFLOW9 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战Ruiery11 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器Decay__12 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检江华森14 小时前
数据中心基础设施运维实战:概述与实验环境搭建迪菲赫尔曼14 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚by2099915 小时前
Linux GCC/G++ 编译与 Makefile 构建螺丝钉tina16 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?迪菲赫尔曼16 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目