You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

已有Nginx环境下GitLab子域名配置失败求助

针对GitLab子域名访问故障的排查建议

首先,从你描述的现象来看,服务器IP能正常访问但域名不行,大概率是域名解析、Nginx配置或者GitLab自身配置出了问题,下面给你一步步的排查方向,以及需要提供的信息:

一、先排查域名解析问题

因为直接访问IP正常,域名访问失败,第一步先确认DNS是否正确解析:

  • 在本地终端或者服务器上执行 nslookup gitlab.my.example.comnslookup my.example.com,检查返回的IP是否是你的服务器IP x.x.x.x。如果解析结果不对,先联系域名服务商调整DNS记录,确保域名正确指向服务器。

二、检查Nginx配置与运行状态

既然你用的是现有Nginx+Passenger环境,Nginx的配置是关键:

  1. 验证配置语法:执行 nginx -t,如果输出显示配置有错误,根据提示修复(比如括号不匹配、路径错误等)。
  2. 检查站点配置文件:
    • 找到你为GitLab创建的Nginx站点配置(通常在 /etc/nginx/sites-available//etc/nginx/conf.d/ 目录下),确认:
      • server_name 准确设置为 gitlab.my.example.com
      • 监听端口(listen 80;listen 443 ssl;)没有被其他配置占用
      • Passenger相关参数正确:比如 passenger_ruby 指向你安装的Ruby可执行文件路径(可以用 which ruby 查看),passenger_enabled on; 已开启
      • root 路径指向GitLab的public目录(通常是 /opt/gitlab/embedded/service/gitlab-rails/public
  3. 查看Nginx错误日志:打开 /var/log/nginx/error.log,搜索 gitlab.my.example.com 相关的报错,比如403权限问题、502网关错误,这些日志能直接告诉你哪里出了问题。

三、检查GitLab自身配置

GitLab的Omnibus包有自己的配置逻辑,需要确保和Nginx联动正确:

  • 打开 /etc/gitlab/gitlab.rb,确认 external_url 'http://gitlab.my.example.com'(如果计划用HTTPS就改成https),然后执行 gitlab-ctl reconfigure 让配置生效。
  • 查看GitLab的Nginx日志:/var/log/gitlab/nginx/gitlab_access.log/var/log/gitlab/nginx/gitlab_error.log,看看有没有来自域名的请求记录,或者内部应用报错。

四、网络与防火墙检查

  • 确认服务器本地防火墙(比如ufw或iptables)已经开放80、443端口:
    • ufw status 查看(如果用ufw),或者 iptables -L -n 检查规则
  • 如果你用的是云服务器,还要检查云服务商的安全组规则,确保外部流量能访问80/443端口。

如果以上排查没解决,需要你提供这些信息:

  • Nginx中针对GitLab的完整站点配置文件内容
  • /etc/gitlab/gitlab.rb 中关于external_url、nginx相关的配置片段
  • Nginx错误日志(/var/log/nginx/error.log)中近期的报错内容
  • nginx -V 的输出(可以查看Nginx是否正确加载了Passenger模块)

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

火山引擎 最新活动