為了能夠自己架個包含 Code Review 的 Private Repository,所以10月份就在家裡架好的 Web Server,多加個 Gerrit System,沒想到在 MySQL 卡了不少問題,還好最後還是找到解決方法。
上次的 Gerrit Code Review 架設 - Part 1 - Gerrit 系統設置篇把Gerrit的安裝簡述完畢,而遇到的 MySQL問題也解決了,這次我們繼續看看Apache該怎麼設定。
<VirtualHost *:9090>
ServerAdmin webmaster@localhost
ServerName localhost
# 提供 Apache 上的認証機制
<Location "/login/">
AuthType Basic
AuthName "Gerrit Review Server"
Require valid-user
AuthUserFile /var/www/apache-passwd
</Location>
# 開啟 SSL 支援,並指定 Certificate 及 Private Key
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
<Directory "">
SSLRequireSSL
</Directory>
# 指定代理轉址,因為 80 Port 被用掉了
# 我希望透過 9090 在轉介到 Gerrit 聽取的 8081 Port
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:8081/
RequestHeader set X-Forwarded-Scheme https
<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheIgnoreHeaders Set-Cookie
</IfModule>
</VirtualHost>
那我們如何自己建立 SSL 的憑證和私鑰?各位可以使用這個 Script,
generate-ssl-key.sh
也可以參考鳥哥的解說 擁有自製憑證的 https。
另外,apache-passwd 這個檔案是作為權限比對的一個帳號密碼檔,這個檔案的用處,是當你將 Gerrit 設定成採用HTTP認證,這檔案裡的帳號便會是登入 Gerrit 的帳號。
想要建立帳號,可以在 Command-line 上,使用 htpasswd 來建立,簡單的解釋如下,
$> sudo htpasswd -c /path/to/passwd-file username
Enter後,會要求輸入密碼,如此便可以建立新的帳號。
上述設定,我將它存放在 /etc/apache/site-avaliable/gerrit 檔案內,藉由以下命令可以啟動這個設定,
$> sudo a2ensite gerrit
另外,因為我們需要讓 Apache 聽取 9090 Port,所以我們也需要另外告知 Apache 去聽取這個 Port,我在 /etc/apache/ports.conf 這個設定檔內加上這個設定值,
Listen 9090
這些設定完成時,記得要確認你的 Gerrit 是否已經啟動了,如果還沒啟動,記得切換身份至 Gerrit 管理身份,藉由 gerrit.sh 啟動服務,然後在執行下列命令,
$> sudo /etc/init.d/apache reload
$> sudo /etc/init.d/apache restart
祝各位可以順利架起 Server 囉!
發佈留言
很抱歉,必須登入網站才能發佈留言。