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

GitLab API下载嵌套目录文件返回404,反向代理配置求助

问题根因

你遇到的多级目录文件API请求404问题,是Apache反向代理的重复转发规则冲突、URL编码处理逻辑错误两个核心原因导致:GitLab API请求嵌套路径时会携带编码后的斜杠%2F,错误的配置会导致该字符被解码/转发逻辑混乱,GitLab无法识别正确路径返回404。

具体调整建议

  • 删掉<Location />块内重复的域名代理配置,仅保留本地端口的转发规则,重复的ProxyPass会导致转发逻辑冲突
  • 删除整段Rewrite规则(包含RewriteEngine、RewriteCond、RewriteRule三行):该规则与Location块的ProxyPass功能重复,且Rewrite的P标志默认会解码URL特殊字符,直接破坏GitLab API的嵌套路径格式
  • 修正请求头拼写错误:X-Forwared-Ssl拼写错误漏了一个d,改为X-Forwarded-Ssl,避免GitLab识别请求协议异常
  • 保留现有AllowEncodedSlashes NoDecode和ProxyPass后的nocanon参数,这两个是GitLab反向代理必须的配置,用于禁止Apache解码URL中的编码斜杠,保留原始请求路径传递给GitLab

调整后完整配置参考

<VirtualHost *:443>
  SSLEngine on
  SSLProtocol all -SSLv2
  SSLHonorCipherOrder on
  SSLCipherSuite "ECDH+AESGCM:DH+AESGM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS"
  Header add Strict-Transport-Security: "max-age=15768000;includeSubdomains"
  SSLCompression Off
  SSLCertificateFile /etc/apache2/ssl.crt/gitlabserver.crt
  SSLCertificateKeyFile /etc/apache2/ssl.key/gitlabserver.key

  ServerName gitlabserver.local
  ServerSignature Off
  ProxyRequests Off
  ProxyPreserveHost On
  AllowEncodedSlashes NoDecode

  <Location />
    Require all granted
    ProxyPass http://127.0.0.1:8181/ nocanon
    ProxyPassReverse http://127.0.0.1:8181/
  </Location>

  RequestHeader set X_FORWARDED_PROTO 'https'
  RequestHeader set X-Forwarded-Ssl on

  DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public

  ErrorDocument 404 /404.html
  ErrorDocument 422 /422.html
  ErrorDocument 500 /500.html
  ErrorDocument 502 /502.html
  ErrorDocument 503 /503.html

  LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
  ErrorLog /var/log/apache2/gitlabserver_error.log
  CustomLog /var/log/apache2/gitlabserver_forwarded.log common_forwarded
  CustomLog /var/log/apache2/gitlabserver_access.log combined env=!dontlog
  CustomLog /var/log/apache2/gitlabserver.log combined
</VirtualHost>

配置修改完成后重启Apache服务即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:07