news 2026/4/21 2:46:36

nginx,前端配置请求路径,后端接口应该怎么写??

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
nginx,前端配置请求路径,后端接口应该怎么写??

你的配置分析

nginx

location /api/ { proxy_pass http://localhost:8080/admin/; }

注意:proxy_pass最后有一个斜杠/,这会影响路径的转发方式。

二、路径转发规则

规则:如果proxy_pass/结尾

  • 原路径中的/api/会被替换为/admin/

  • 更准确地说:匹配到的部分(/api/)会被整个删除,然后拼接上proxy_pass的路径

示例映射

前端请求Nginx 转发给后端
/api/employee/loginhttp://localhost:8080/admin/employee/login
/api/employee/listhttp://localhost:8080/admin/employee/list
/api/order/detailhttp://localhost:8080/admin/order/detail

三、你的后端接口应该怎么写

✅ 正确写法

java

@RestController @RequestMapping("/admin/employee") public class EmployeeController { // 前端调用:/api/employee/login // Nginx 转发:/admin/employee/login // 最终匹配:@RequestMapping("/admin/employee") + @PostMapping("/login") @PostMapping("/login") public Result login(@RequestBody LoginDTO loginDTO) { // 登录逻辑 return Result.success(); } // 前端调用:/api/employee/list // Nginx 转发:/admin/employee/list @GetMapping("/list") public Result list() { return Result.success(); } }

❌ 错误写法

java

// 错误:如果写成这样 @RequestMapping("/api/employee") // ❌ 后端没有 /api 路径 public class EmployeeController { @PostMapping("/login") public Result login() { // 转发后是 /admin/employee/login,匹配不到 /api/employee/login } }

四、完整流程示例

场景:员工登录

  1. 前端代码

javascript

// 前端调用 axios.post('/api/employee/login', { username: 'admin', password: '123456' })
  1. Nginx 转发

nginx

location /api/ { proxy_pass http://localhost:8080/admin/; }

实际转发给后端:http://localhost:8080/admin/employee/login

  1. 后端接口

java

@RestController @RequestMapping("/admin/employee") public class EmployeeController { @PostMapping("/login") public Result login(@RequestBody LoginDTO loginDTO) { // 处理登录 // 访问路径:/admin/employee/login return Result.success(); } }

五、特殊情况:如果不以斜杠结尾

假设你的配置是:

nginx

location /api/ { proxy_pass http://localhost:8080/admin; # 注意:没有最后的 / }

那么转发规则会不同:

  • /api/employee/loginhttp://localhost:8080/adminemployee/login(注意:/adminemployee直接拼接,缺少斜杠)

  • 这通常不是你想要的效果,所以建议保持配置以/结尾

六、总结

你的理解:

  • @RequestMapping("/admin/employee")是正确的

  • ✅ 前端调用/api/employee/login也是正确的

  • ✅ 后端写/login接口匹配也是正确的

核心要点

  1. 前端路径中的/api/会被 Nginx 替换成/admin/

  2. 后端接口路径中不要出现/api/,应该用/admin/

  3. 你的@RequestMapping("/admin/employee")正好匹配转换后的路径

这样配置的好处是:前端不需要知道后端的具体路径前缀(/admin),只需要统一调用/api/xxx,Nginx 负责做路径映射。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 2:46:35

c++怎么获取文件的压缩比例信息_Windows压缩卷特性【详解】

Windows NTFS压缩不提供文件“压缩比例”属性,仅能通过GetFileInformationByHandle获取逻辑大小与分配大小估算比例,且分配大小为簇对齐的近似值,非精确压缩后字节数。Windows 压缩卷上的文件没有“压缩比例”这个属性Windows 的 NTFS 压缩&a…

作者头像 李华
网站建设 2026/4/21 2:44:35

如何释放长时间未提交事务的Undo空间_KILL SESSION与回滚观察

KILL SESSION 后Undo空间未立即释放,因默认仅中断连接而不终止事务,SMON需异步回滚;加IMMEDIATE可强制移交回滚权给SMON,但Undo释放仍需时间,须监控V$TRANSACTION和V$UNDOSTAT确认回滚进度。为什么 KILL SESSION 后 Un…

作者头像 李华
网站建设 2026/4/21 2:24:16

终极开源光学材料数据库实战指南:3000+材料折射率一键查询

终极开源光学材料数据库实战指南:3000材料折射率一键查询 【免费下载链接】refractiveindex.info-database Database of optical constants 项目地址: https://gitcode.com/gh_mirrors/re/refractiveindex.info-database 在光学设计、半导体制造、光伏研究和…

作者头像 李华