You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx中配置传递URI字符串至指定端口目标地址

解决Nginx反向代理动态URI转发到指定端口的问题

看起来你之前用了301重定向,但这会改变用户看到的URL,而你需要保持原URL不变,所以反向代理才是正确的方案。下面根据你的需求给出两种常见场景的配置:

场景1:所有动态URI都转发到同一目标路径

如果用户访问 testurl.test.com/任意动态内容,需要转发到 http://12.34.56.78:8080/someurlstringhere/任意动态内容,可以用这个配置:

server {
    listen 80;
    # 这里要改成你的实际域名,而不是IP
    server_name testurl.test.com;

    location / {
        # $request_uri 会自动带上原请求的完整URI(包括动态部分和参数)
        proxy_pass http://12.34.56.78:8080/someurlstringhere$request_uri;
        
        # 传递必要的请求头,让后端服务器能正确识别原请求信息
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

场景2:9种不同参数对应不同的目标路径

如果你的9种动态参数需要分别转发到不同的目标路径(比如 /param1 对应 /targetpath1,/param2 对应 /targetpath2),可以用多个location块来匹配:

server {
    listen 80;
    server_name testurl.test.com;

    # 匹配第一个参数的请求
    location /param1 {
        proxy_pass http://12.34.56.78:8080/targetpath1$request_uri;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 匹配第二个参数的请求
    location /param2 {
        proxy_pass http://12.34.56.78:8080/targetpath2$request_uri;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 剩下的7种参数按照上面的格式依次添加...

    # 可选:默认处理逻辑,匹配不到上面参数时的行为
    location / {
        # 可以返回404,或者转发到一个默认路径
        return 404 "Invalid parameter";
        # 或者 proxy_pass http://12.34.56.78:8080/defaultpath$request_uri;
    }
}

关键注意事项

  • 不要用return 301:重定向会让浏览器地址栏变成目标URL,而反向代理能保持原URL不变,完全符合你的需求。
  • $request_uri变量:这个变量包含了原请求的完整URI(包括?后面的查询参数),确保动态部分能完整传递到后端。
  • 配置验证:修改完配置后,先运行 nginx -t 检查语法是否正确,再用 nginx -s reload 重新加载配置生效。
  • 域名解析:要确保testurl.test.com已经正确解析到你的Nginx服务器IP,否则用户无法通过域名访问。

内容的提问来源于stack exchange,提问作者Mitch Davis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:56:54