Nginx子域名错误加载其他域名Web应用问题排查求助
问题原因
你当前的Nginx配置里没有针对demo.firstwebsite.com的server块,当Nginx接收到这个子域名的请求时,找不到匹配的配置,就会将请求转发到默认服务器(通常是Nginx配置中第一个加载的server块,或者标记了default_server的块),而这个默认服务器刚好是www.secondwebsite.com的配置,所以才会出现跳转。
解决步骤
添加demo子域名的Nginx配置
在Nginx配置目录(通常是/etc/nginx/sites-available/)中,给demo.firstwebsite.com创建专属的server块,示例如下(根据你的实际路径调整):server { listen 80; server_name demo.firstwebsite.com; location = /favicon.ico { access_log off; log_not_found off; } # 如果demo站点的静态文件和主站同目录,就沿用主站路径,否则修改为demo站点的路径 location /static/ { root /var/www/firstwebsite; } location /media/ { root /var/www/firstwebsite; } location / { include proxy_params; # 这里填你为demo站点创建的专属socket路径 proxy_pass http://unix:/run/demo_firstwebsite.sock; } }配置完成后,通过软链接将配置文件放到
sites-enabled目录(如果用sites-available/sites-enabled结构的话):sudo ln -s /etc/nginx/sites-available/demo.firstwebsite.com /etc/nginx/sites-enabled/验证Nginx配置语法
执行命令检查配置是否有语法错误:sudo nginx -t如果输出
nginx: configuration file /etc/nginx/nginx.conf test is successful,说明配置没问题。重启Nginx服务
让新配置生效:sudo systemctl reload nginx(如果reload不生效,可以用
restart替代)确认DNS解析生效
在本地终端执行以下命令,确认demo.firstwebsite.com解析到的IP是你的服务器IP:nslookup demo.firstwebsite.com如果解析结果不对,检查域名服务商的AAA记录配置是否正确,等待DNS生效(通常需要几分钟到几小时)。
清除浏览器缓存
用浏览器的隐私模式访问demo.firstwebsite.com,或者清除本地浏览器缓存,避免旧的缓存记录影响访问结果。
内容的提问来源于stack exchange,提问作者tiberhockey

