nginx路由重写

前言

nginx可以实现路由重写

nginx路由重写

准备接口

kotlin 复制代码
package org.example.demoapi.controller;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v2/user")
public class UserController {


    @GetMapping("/getUser")
    public String getUser() {
        return "User Controller";
    }
}

端口为7000

路由重写

这个接口使用

bash 复制代码
http://localhost:7000/api/v2/user/getUser

要使用

bash 复制代码
http://localhost:7000/api/v1/user/getUser

nginx可以配置

ruby 复制代码
# ✅ 正确:两边都有尾部斜杠
location /api/v1/ {
    proxy_pass http://127.0.0.1:7000/api/v2/;
}

# ❌ 错误:缺少任一斜杠都会导致路径拼接而非替换
location /api/v1/ {
    proxy_pass http://127.0.0.1:7000/api/v2;  # 会变成 /api/v2/api/v1/user/getUser
}

或者使用

perl 复制代码
 server {
        listen       80;
        server_name  localhost;

        access_log  d:/temp/access.log  req_format;
		
		location / {
    # 仅重写 /api/v1/ 开头的路径,保留后续部分
    rewrite ^/api/v1/(.*)$ /api/v2/$1 break;
    
    proxy_pass http://127.0.0.1:7000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

总结

使用nginx可以路由重写或者转发

相关推荐
程序员海军2 小时前
用了两年多 GPT,我最近开始换模型了,还折腾了个求职避坑 Agent
前端·人工智能·后端
码士集团小青2 小时前
SpringBoot 集成缓存性能之王 Caffeine
spring boot·后端·缓存
程序员-Benothing3 小时前
Linux安全加固指南:账号、权限、服务、审计基线
linux·运维·安全
Mininglamp_27183 小时前
接口调用 vs 屏幕理解:两种 GUI 自动化架构的技术取舍
运维·架构·自动化
excel4 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
Json____5 小时前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
爱喝水的鱼丶5 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
木子欢儿5 小时前
openconnect Linux客户端安装 以及开机自启和登录
linux·运维·服务器
小灰灰搞电子6 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
..Dauntless..6 小时前
【Linux】文件系统(一)
linux·运维·服务器