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

如何修改GitLab主机IP地址?Hyper-V环境域名显示异常求助

解决GitLab显示内部IP而非自定义域名的问题

这个问题我之前帮朋友处理过,核心是GitLab的外部URL配置和反向代理的请求头传递没做好,按下面几步来就能解决:

1. 修改GitLab的核心外部URL配置

GitLab生成所有页面链接(包括用户资料URL)都是基于external_url这个配置项的,所以第一步就是把它改成你的自定义域名:

  • 登录Ubuntu服务器,打开GitLab的主配置文件:
    sudo nano /etc/gitlab/gitlab.rb
    
  • 找到external_url这一行(可能被注释掉了,去掉前面的#),改成你的域名:
    external_url 'http://git.example.com'
    
  • 保存并退出编辑器(按Ctrl+O,回车确认,再按Ctrl+X)
  • 让GitLab重新加载配置并重启服务:
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    

2. 配置IIS ARR传递正确的请求头

因为ARR是反向代理,它需要把用户实际访问的域名信息传递给GitLab,否则GitLab会默认用自己的内部IP生成链接:

  • 打开IIS管理器,找到你创建的ARR反向代理规则,右键选择“编辑规则”
  • 切换到“服务器变量”标签,点击“添加”:
    • 添加变量HTTP_X_FORWARDED_HOST,值设为git.example.com
    • 如果你的服务用的是HTTPS,还要添加HTTP_X_FORWARDED_PROTO,值设为https;如果是HTTP就设为http
  • 另外,在规则的“操作”标签里,确保勾选了Preserve Host Header选项,这样ARR会把原始请求的主机头传递给GitLab

3. 让GitLab信任你的反向代理服务器(可选但推荐)

为了确保GitLab能正确识别来自ARR的请求,还可以配置GitLab的Nginx模块信任ARR的IP:

  • 再次打开/etc/gitlab/gitlab.rb,添加以下配置:
    nginx['real_ip_trusted_addresses'] = ['10.0.0.1'] # 这里填Hyper-V网卡的私有IP(ARR所在服务器的内部IP)
    nginx['real_ip_header'] = 'X-Forwarded-For'
    nginx['real_ip_recursive'] = 'on'
    
  • 同样执行sudo gitlab-ctl reconfigure和sudo gitlab-ctl restart让配置生效

做完以上步骤后,刷新GitLab页面,用户资料的URL应该就会显示为http://git.example.com/test了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:35:13