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

配置Nginx反向代理Jenkins后子域名访问异常求助

解决Nginx反向代理Jenkins时显示其他站点页面的问题

以下是具体的排查和解决步骤:

1. 验证配置语法并重载Nginx

首先确保你的配置没有语法错误,并且Nginx已经加载了新配置:

sudo nginx -t
sudo systemctl reload nginx

如果nginx -t返回错误,根据提示修复配置文件中的问题。

2. 确保Jenkins虚拟主机优先匹配

Nginx会将未匹配到明确server_name的请求转发给默认服务器(通常是第一个定义的server块,或者带有default_server标记的块)。如果你的请求落到了其他站点,说明默认服务器的优先级更高:

  • 修改Jenkins配置的listen指令,添加default_server参数(如果该域名是你希望优先处理的):
    listen 80 default_server;
    
  • 或者检查默认服务器配置(通常在/etc/nginx/nginx.conf或/etc/nginx/sites-enabled/default),给它设置明确的server_name,避免捕获所有未匹配的请求。

3. 确认配置文件被正确加载

如果你将配置放到了/etc/nginx/site-available,需要创建软链接到site-enabled目录,否则Nginx不会加载该配置:

sudo ln -s /etc/nginx/site-available/jenkins.conf /etc/nginx/site-enabled/

同时检查/etc/nginx/nginx.conf中是否包含以下行,确保site-enabled目录的配置被加载:

include /etc/nginx/site-enabled/*;

4. 验证DNS解析和本地缓存

确认你的子域名jenkins.my-domain.com已经正确解析到服务器IP:

nslookup jenkins.my-domain.com

如果解析错误,检查域名服务商的DNS设置。同时清除本地DNS缓存(不同系统命令不同,比如Windows用ipconfig /flushdns,Linux用systemd-resolve --flush-caches)。

5. 查看访问日志定位问题

查看Nginx访问日志,确认请求的Host头和处理该请求的服务器块:

tail -f /var/log/nginx/jenkins.access.log /var/log/nginx/access.log

如果日志中显示请求的Host不是jenkins.my-domain.com,说明客户端请求的Host头有误,或者DNS解析未生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:20:32