我正在 docker 中运行 gitlab,该 docker 映射到本地主机上的端口 8880。这样我就可以使用 URL 访问它
http://localhost:8880
但我已经使用 apache proxy pass 创建以下映射
localhost:8880 ------> localhost/gitlab
这样我的用户就可以通过 localhost/gitlab 访问 gitlab。一切似乎都工作正常,但渲染页面时出现问题。 Gitlab生成的页面中的所有链接都使用相对url,例如
这会导致 apache 在单击时将它们重定向到 localhost/assets/...。这会导致 404 错误,这很明显,因为资源路径不正确。该链接应该生成为 localhost/gitlab/assets/... 以便 apache 可以将它们正确映射到 localhost/gitlab/assets/...
我尝试过使用 Apache 重写模块、Nginx 重写模块,但它们都不起作用。我可以更改 gitlab 生成的相对 URL 吗?
最佳答案
抱歉,gitlab 目前不支持此功能。如果必须使用相对 url,请考虑使用综合 gitlab,因为它支持相对 url。
当您向 localhost/gitlab 发送请求时,apache 服务器会将其转发到 localhost:8880。但 gitlab 和 nginx 都不知道它来自相对 url,只有 apache 知道。这成为一个问题,因为 gitlab 中的资源路径是使用 fqdn - localhost:8880 构建的。并且 apache 只修改 localhost/gitlab 的请求 header ,而不修改请求中嵌入的链接和资源。
关于apache - apache代理通下的Gitlab相对URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27236051/