搭建gerrit服務器(apache&nginx反向代理方式)


這段時間,想搭建一個gerrit,用於代碼托管,gerrit的搭建,網上有很多種教程,但是自己按照別人的教程逐步操作,一直出現諸多問題。最頭痛的就是:
Configuration Error

Check the HTTP server's authentication settings.

      后來經過他人指點,才知道自己的原因。由於對Apache的反向代理的機制,沒有清楚,導致寸步難行。現將搭建方式進行記載:

一.gerrit的搭建

     由於gerrit和Apache的安裝,網上教程已經很多,這里就不一一說明了。本文主要講解如何配置Apache的反向代理.

    本次搭建環境為VMware上的Ubuntu12.04,通過Windows上,ssh去操作。 Ubuntu虛擬機的ip地址為192.168.1.6,Windows的IP地址為192.168.1.3。搭建的gerrit服務器,在Windows上通過http://192.168.1.6:9999/進行訪問。

   假定gerrit已經成功安裝到Ubuntu,其路徑為:/home/gerrit/review-gerrit

  進入etc路徑,即/home/gerrit/review-gerrit/etc,這里貼出gerrit.config文件:

 

[html]  view plain  copy
 
  1. [gerrit]  
  2.     basePath = /home/gerrit/prj-source  
  3.     canonicalWebUrl = http://192.168.1.6:10000  
  4. [database]  
  5.     type = h2  
  6.     database = db/ReviewDB  
  7. [auth]  
  8.     type = HTTP  
  9. [sendemail]  
  10.     smtpServer = localhost  
  11. [container]  
  12.     user = root  
  13.     javaHome = /usr/lib/jvm/java-6-openjdk-amd64/jre  
  14. [sshd]  
  15.     listenAddress = *:29418  
  16. [httpd]  
  17.     listenUrl = http://*:10000  

 

      完成以上的步驟,比較簡單,很多教程都有過描述。下面主要講解Apache的反向代理。

      首先簡單描述一下反向代理的基礎:反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,
並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。

         例如我們想通過PC瀏覽器去訪問http://192.168.1.6:9999,就是一個反向代理。在/home/gerrit/review-gerrit/etc/gerrit.config中,我們配置gerrit端口bind在10000,為啥外部通過訪問端口9999,就可以打開gerrit的web頁面?

        原因就是Apache的反向代理功能。那就開始配置Apache吧!

        a.第一步,要在Apache上新增端口9999,用戶監聽網絡事件。修改配置文件/etc/apache2/ports.conf。    

 

[html]  view plain  copy
 
  1. NameVirtualHost *:80  
  2. Listen 80  
  3. Listen 9999  

       b.第二步,增加反向代理的配置。/etc/apache2/sites-enabled/000-default

 

 

[html]  view plain  copy
 
  1. <VirtualHost *:9999>  
  2.     ServerName 192.168.1.6  
  3.     ProxyPreserveHost On  
  4.     ProxyRequests Off  
  5.     <Proxy *>  
  6.         Order deny,allow  
  7.         Allow from all  
  8.     </Proxy>  
  9.     <Location />  
  10.       AuthType Basic  
  11.       AuthName "Welcomme to Gerrit Code Review Site!"  
  12.       Require valid-user  
  13.       AuthUserFile /home/gerrit/review-gerrit/htpasswd.conf  
  14.     </Location>  
  15.     ProxyPass / http://192.168.1.6:10000/  
  16.     proxyPassReverse / http://127.0.0.1:10000/  
  17. </VirtualHost>  

       c.完成以上配置,則成功。然后restart Apache和gerrit服務即可

 

     然后在pc瀏覽器上輸入:http://192.168.1.6:9999/,則啟動gerrit

     
      輸入賬號密碼,顯示如下:

   

       gerrit安裝配置成功。

     如果不適用Apache進行反向代理,使用nginx則更加簡單,直接修改一個文件就可以了。/etc/nginx/conf.d/gerrit.conf,沒有這個文件,則直接touch gerrit.conf就可生成,然后編輯一下。

 

[html]  view plain  copy
 
  1. server {  
  2.      listen *:9999;  
  3.      server_name 192.168.1.6;  
  4.      allow   all;  
  5.      deny    all;  
  6.      auth_basic "Welcomme to Gerrit Code Review Site!";  
  7.      auth_basic_user_file /home/gerrit/review-gerrit/htpasswd.conf;  
  8.   
  9.      location / {  
  10.         proxy_pass  http://127.0.0.1:10000;  
  11.      }  
  12.    }  

    按照以上步驟,可以搭建一個gerrit服務器了。

   另外,關於gerrit服務器的后台權限&項目管控,還在逐步研究。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM