apache代理传递下的Gitlab相对URL
我在docker中运行gitlab,docker映射到本地主机上的8880端口。所以我可以使用URL访问它apache代理传递下的Gitlab相对URL,apache,gitlab,proxypass,Apache,Gitlab,Proxypass,我在docker中运行gitlab,docker映射到本地主机上的8880端口。所以我可以使用URL访问它 http://localhost:8880 但我已经使用apache proxy pass创建了以下映射 localhost:8880----->localhost/gitlab 这样我的用户就可以通过localhost/gitlab访问gitlab。一切似乎都很正常,但问题出现在页面呈现时。Gitlab生成的页面中的所有链接都使用相对url,如 /assets/favicon-b
http://localhost:8880 但我已经使用apache proxy pass创建了以下映射
localhost:8880----->localhost/gitlab 这样我的用户就可以通过localhost/gitlab访问gitlab。一切似乎都很正常,但问题出现在页面呈现时。Gitlab生成的页面中的所有链接都使用相对url,如
很抱歉,gitlab当前不支持此功能。如果必须使用相对URL,请考虑使用通用GITLAB,因为它支持相对URL。
当您向localhost/gitlab发送请求时,apache服务器会将其转发到localhost:8880。但gitlab和nginx都不知道它来自相对url,只有apache知道。这成为一个问题,因为gitlab中的资源路径是用fqdn-localhost:8880构建的。apache只将请求的标题修改为localhost/gitlab,而不是请求中嵌入的链接和资源。谢谢您的回复。但我不喜欢这个答案!whineOld post,但是如果有人像我一样偶然发现它,gitlab的综合发行版不支持相对URL安装:您可以查看
mod\u proxy\u html
模块来解决这个问题。具体来说,该指令可以重写所服务HTML页面中的URL,以指向正确的位置。您还可以使用mod_proxy
重写cookie,这可能是修复身份验证令牌所必需的。更好的解决方案可能是在自己的主机上(例如,gitlab.localhost
)而不是在子目录上为gitlab提供服务,这样在代理到后端时只需对流量进行最小的修改。