Windows 部署 Gerrit 與 Apache24 并配置反向代理
準備工作
- 下載并安裝 Java JDK
- 確保配置 JAVA_HOME 環境變量
博主這里安裝openjdk21
https://jdk.java.net/archive/
- 下載所需軟件
- Apache24:https://httpd.apache.org/download.cgi
- Gerrit:https://www.gerritcodereview.com/3.12.html
- Apache24:https://httpd.apache.org/download.cgi
安裝 Apache24
-
將下載的 Apache24 解壓到合適的目錄(例如:
C:\Apache24
) -
Apache24\conf路徑下,用記事本軟件打開“httpd.conf”文件
修改“Define SRVROOT”為安裝目錄
-
測試 Apache 是否能正常運行
cd C:\Apache24\bin httpd.exe -k install -n apache httpd.exe -k start
計算機服務中出現apache的服務,可以手動啟動
4. 打開瀏覽器訪問 http://localhost,如能看到 “It works!” 則表示安裝成功
安裝 Gerrit
-
創建 Gerrit 安裝目錄(例如:
C:\gerrit
) -
打開命令提示符,執行 Gerrit 安裝命令
java -jar gerrit-<version>.war init --batch -d C:\gerrit
可以修改-d后的路徑,修改安裝位置
- 配置 Gerrit(在安裝過程中或修改
C:\gerrit\etc\gerrit.config
)
注意替換canonicalWebUrl 中的ip
[gerrit]basePath = gitcanonicalWebUrl = http://10.*.37.10:8080/serverId = 8a656c4b-3c51-4dcf-af46-de35d2770449
[container]javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"user = AdministratorjavaHome = D:\\software\\jdk\\openjdk-21.0.1_windows-x64_bin\\jdk-21.0.1
[index]type = lucene
[auth]type = HTTP
[receive]enableSignedPush = false
[sendemail]smtpServer = localhost
[sshd]listenAddress = *:29418
[httpd]listenUrl = http://*:8080/
[cache]directory = cache
配置 Apache 反向代理
-
啟用 Apache 必要模塊,編輯
C:\Apache24\conf\httpd.conf
,確保以下模塊被啟用:Define SRVROOT "D:\Apache24" ... ServerName 10.*.37.10:80 ... LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authz_user_module modules/mod_authz_user.so
-
在
httpd.conf
末尾添加反向代理配置:
注意替換gerrit.passwd路徑為真實路徑<VirtualHost *:80>ServerName localhostProxyRequests OffProxyVia OffProxyPreserveHost On<Proxy *:80>Require all granted</Proxy> <Location "/login/">AuthType BasicAuthName "Gerrit Code Review"Require valid-userAuthBasicProvider fileAuthUserFile F:/Gerrit/etc/gerrit.passwd</Location>AllowEncodedSlashes OnProxyPass / http://localhost:8080/
配置賬號密碼認證
-
創建密碼文件(需要使用 Apache 的 htpasswd 工具)
-c參數為創建新的passwd文件cd C:\Apache24\bin htpasswd.exe -c C:\Apache24\conf\gerrit.passwd <用戶名>
執行后會提示輸入密碼,這將創建第一個用戶
-
添加更多用戶(注意去掉
-c
參數,否則會覆蓋現有文件)htpasswd.exe C:\Apache24\conf\gerrit.passwd <新用戶名>
啟動服務
- 重啟 Apache 服務
cd C:\Apache24\bin httpd.exe -k restart
2. 啟動 Gerrit 服務
C:\gerrit\bin\gerrit.sh start
- 訪問 Gerrit:打開瀏覽器訪問 http://localhost,使用你創建的賬號密碼登錄
常見問題解決
-
端口沖突:如果 80 端口被占用,可以修改 Apache 的監聽端口(在 httpd.conf 中修改 Listen 指令)
-
權限問題:確保 Gerrit 和 Apache 有足夠的權限訪問各自的目錄
-
服務啟動失敗:查看 Apache 的錯誤日志(
C:\Apache24\logs\error.log
)和 Gerrit 的日志(C:\gerrit\logs\error_log
)尋找線索 -
如果無法通過 http://localhost 訪問 Gerrit,可以先測試直接訪問 Gerrit 端口 http://localhost:8081 確認 Gerrit 本身是否正常運行
完成以上步驟后,你應該已經成功在 Windows 上部署了 Gerrit 并通過 Apache 實現了反向代理和賬號密碼認證。