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

Nginx反向代理请求未携带端口引发404错误如何解决?

Nginx反向代理Gitlab 404问题修复方案

问题根因

本次404错误由多个配置问题共同导致:

  • 配置中proxy_pass端口与你预期的Gitlab服务端口9000不一致,当前填写为9980
  • port_in_redirect off配置会强制Nginx在重定向响应中移除端口,导致资源请求路径缺失端口
  • 缺少协议转发头、重定向替换规则,Gitlab生成的静态资源路径未携带/gitlab前缀

修改后的完整Nginx配置

worker_processes 1;
 
events { 
    worker_connections 1024; 
}
 
http {
    server {
        listen              80;

        location /gitlab/ {
            # 修正为实际Gitlab服务端口
            proxy_pass         http://192.168.1.10:9000/;
            proxy_set_header   Host $host:$server_port;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $host:$server_port;
            # 新增协议转发头,保证Gitlab识别访问协议正常
            proxy_set_header   X-Forwarded-Proto $scheme;
            # 新增重定向替换规则,将服务端返回的内部路径替换为对外的带前缀路径
            proxy_redirect     http://192.168.1.10:9000/ http://$host/gitlab/;
        }
    }
}

Gitlab服务端配套调整

需要同时修改Gitlab的gitlab.rb配置文件,指定对外访问路径前缀,保证Gitlab生成的资源路径自带/gitlab前缀:

external_url 'http://你的外网IP/gitlab'

修改完成后执行gitlab-ctl reconfigure使配置生效即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:24:00