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

单Nginx服务器共享端口部署双网站:beta域名访问返回alpha内容的虚拟主机配置求助

Nginx服务器共享端口部署双网站:beta域名访问返回alpha内容的虚拟主机配置求助

兄弟,我看了你遇到的问题,这在Nginx虚拟主机配置里属于高频踩坑点,咱一步步来排查解决:

  • 先抓最明显的拼写错误!
    你贴的beta配置里写的是server_nam...,这明显是server_name少打了字符!Nginx如果识别不到正确的server_name,会把这个请求默认丢给第一个加载的虚拟主机配置(也就是你的alpha),这就是为啥访问beta会返回alpha内容的核心原因。

  • 修正后的beta基础配置示例
    先把beta的配置补全正确:

    server {
      listen 80;
      listen [::]:80;
      server_name beta.com www.beta.com;
      # 如果你也想跳转到HTTPS,和alpha配置保持一致即可
      return 302 https://$server_name$request_uri;
    
      root /var/www/html/beta.com;
      index index.html index.htm;
    }
    
  • 必做的配置验证步骤

    • 检查软链接是否正确:执行ls -l /etc/nginx/sites-enabled/,确认beta的软链确实指向/etc/nginx/sites-available/beta,别手动创建时打错路径
    • 验证配置语法合法性:每次改完配置都要跑sudo nginx -t,如果有语法错误(比如刚才的拼写问题),Nginx会直接抛出错误提示,这时候配置不会生效
    • 重载Nginx配置:改完配置一定要执行sudo systemctl reload nginx,不然Nginx还是用旧的配置,等于白改
  • 额外的排查小技巧
    要是还不确定请求走的哪个配置块,可以给每个虚拟主机加独立的访问日志:
    在alpha的server块里加access_log /var/log/nginx/alpha_access.log;,beta的server块里加access_log /var/log/nginx/beta_access.log;,访问beta域名后查看日志,就能明确请求是不是走到了beta的配置里。

  • 小细节优化(非紧急)
    你的alpha配置里,return 302语句在root和index前面,其实return会直接返回跳转,后面的root这些根本不会执行,虽然不影响功能,但建议把root、index这些配置放到HTTPS的server块里(如果后续要配置HTTPS的话)。

备注:内容来源于stack exchange,提问作者KLR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 08:58:08