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

Nginx代理配置:将子路径(点换横杠的IP)映射至目标URL

用Nginx的location和proxy_pass实现带横杠IP的URL转发

嘿,这个需求其实用Nginx的正则location配合变量替换就能轻松搞定,我来给你一步步拆解怎么做:

核心思路

我们需要通过正则location捕获URL中用横杠分隔的IP段,然后将横杠替换为点号拼接成真实的目标IP,最后用proxy_pass把请求转发到这个目标IP的服务器上。

基础配置(仅处理根路径请求)

如果你的请求都是形如http://example.com/10-10-43-3这种不带子路径的格式,用下面的配置就够了:

server {
    listen 80;
    server_name example.com;

    # 匹配形如 /xxx-xxx-xxx-xxx 的URL,捕获四个IP段
    location ~ ^/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)$ {
        # 将捕获的四个数字段用点号拼接成目标IP
        set $target_ip "$1.$2.$3.$4";
        
        # 转发请求到目标IP的HTTP服务
        proxy_pass http://$target_ip;
        
        # 可选:传递必要的请求头,确保目标服务能正确处理请求
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
        # 可选:处理目标服务不可达的情况
        proxy_connect_timeout 5s;
        proxy_intercept_errors on;
        error_page 502 503 504 /error.html;
    }
}

扩展配置(支持带子路径的请求)

如果需要处理http://example.com/10-10-43-3/api/get-data这种带子路径的请求,只需要调整正则表达式,把后面的子路径也捕获并转发:

server {
    listen 80;
    server_name example.com;

    # 匹配带子路径的URL,捕获IP段和后续路径
    location ~ ^/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)(.*)$ {
        set $target_ip "$1.$2.$3.$4";
        # 将子路径(第5个捕获组$5)一起转发到目标服务器
        proxy_pass http://$target_ip$5;
        
        # 其他请求头配置同上
        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中正则location的优先级高于前缀location,如果你的配置里还有其他location规则,要确保这个正则location不会被其他规则覆盖。
  • IP合法性校验:上面的简单正则只是匹配数字和横杠,没有校验IP段是否在0-255的合法范围内。如果需要严格校验,可以把每个数字分组替换成(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?),比如:
    location ~ ^/((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)-){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ {
        # 内部逻辑同上
    }
    
  • 端口扩展:如果目标服务器使用非80端口,比如8080,可以修改URL规则为/10-10-43-3-8080,然后在正则里捕获端口部分,拼接成http://$target_ip:$target_port进行转发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:10:14