Gerrit

當我設置 gerrit.canonicalWebUrl 時,“頁面沒有正確重定向”

  • January 3, 2018

從https://github.com/GerritCodeReview/docker-gerrit安裝 Gerrit 以下Using Gerrit in production部分後,該欄位自動設置為此值:

[gerrit]
       canonicalWebUrl = http://eac32ee72f2b/

我想在反向代理後面使用 Gerrit,所以我這樣配置 Apache2:

ProxyPass / http://192.168.19.241:8080/ nocanon

這有效,但是一旦我設置gerrit.canonicalWebUrlhttps://gerrit.example.com,我得到頁面沒有正確重定向並且瀏覽器中的 URL 變為https://gerrit.example.com//login/.

如果我嘗試將規範的 web url 設置為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.

誰能告訴我我做錯了什麼?我想設置正確的 Web URL,因為它在通過 HTTP 檢出儲存庫的連結中可見,也可能在其他地方可見。

我錯過了這一章:https ://gerrit-review.googlesource.com/Documentation/config-reverseproxy.html#_ssl

它被編寫用來proxy-https代替proxy-http在 Apache2 中使用 HTTPS 時使用。這一切都適用於這個配置:

[httpd]
   listenUrl = proxy-https://*:8080/

引用自:https://serverfault.com/questions/889989