安装 Gerrit 后,请Using Gerrit in production
按照以下部分操作https://github.com/GerritCodeReview/docker-gerrit,该字段被自动设置为该值:
[gerrit]
canonicalWebUrl = http://eac32ee72f2b/
我想在反向代理后面使用 Gerrit,因此我像这样配置了 Apache2:
ProxyPass / http://192.168.19.241:8080/ nocanon
这有效,但只要我设置gerrit.canonicalWebUrl
为https://gerrit.example.com
,我就会得到页面未正确重定向浏览器中的 URL 变为https://gerrit.example.com//login/
。
如果我尝试将规范的网址设置为https://gerrit.example.com/g/
并相应地更新 Apache2:
ProxyPass /g/ http://192.168.19.241:8080/g/ nocanon
我在浏览器中收到“未找到”消息,并且栏中的 URL 现在显示为https://gerrit.example.com/g//g//g//g//g//g//g//g//g//g//g//g//g//g//g//g//g//g//g//g//g
。如果我检查 HTTP 标头,对于页面的初始请求,https://gerrit.example.com/g
我会获得 301 重定向到https://gerrit.example.com/g//g
。
在所有情况下,配置httpd.listenUrl
都是proxy-http://*:8080
。
有人能告诉我我做错了什么吗?我想设置正确的网址,因为它在通过 HTTP 签出存储库的链接中可见,也可能在其他地方可见。
答案1
我错过了这一章:https://gerrit-review.googlesource.com/Documentation/config-reverseproxy.html#_ssl
它被写成在使用 HTTPS 和 Apache2 时使用proxy-https
而不是。它都使用这个配置工作:proxy-http
[httpd]
listenUrl = proxy-https://*:8080/