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

Nginx配置求助:非指定域名请求转发至prod服务器

Nginx实现指定域名转发、其余域名统一转发的配置方案

完全可以实现你的需求,具体操作如下:

最终配置示例

将以下两个server块添加到你的Nginx配置文件中(比如/etc/nginx/conf.d/your-site.conf):

# 处理dev.local和sat.local的请求
server {
    listen        80;
    server_name   dev.local sat.local;
    location / {
        proxy_pass http://sat:80;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

# 处理所有其他域名的请求(默认服务器)
server {
    listen        80 default_server;
    server_name   _; # 专用的默认服务器标识,比*更规范
    location / {
        proxy_pass http://prod:80;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

原理说明

Nginx处理请求时会按优先级匹配server块:

  • 优先匹配精确匹配的server_name(即dev.local和sat.local),这类请求会被转发到http://sat:80;
  • 当请求的Host头不匹配任何精确的server_name时,会触发标记为default_server的server块,也就是上面第二个配置,将请求转发到http://prod:80。

验证与生效

  1. 配置完成后,先测试语法是否正确:
nginx -t
  1. 若测试无报错,重载Nginx使配置生效:
systemctl reload nginx
# 或根据系统环境使用:service nginx reload

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:32:07