1. 程式人生 > >搭建gerrit伺服器(apache&nginx反向代理方式)

搭建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檔案:

[gerrit]
    basePath = /home/gerrit/prj-source
    canonicalWebUrl = http://192.168.1.6:10000
[database]
    type = h2
    database = db/ReviewDB
[auth]
    type = HTTP
[sendemail]
    smtpServer = localhost
[container]
    user = root
    javaHome = /usr/lib/jvm/java-6-openjdk-amd64/jre
[sshd]
    listenAddress = *:29418
[httpd]
    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。    

    NameVirtualHost *:80
    Listen 80
    Listen 9999
       b.第二步,增加反向代理的配置。/etc/apache2/sites-enabled/000-default
<VirtualHost *:9999>
    ServerName 192.168.1.6
    ProxyPreserveHost On
    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    <Location />
      AuthType Basic
      AuthName "Welcomme to Gerrit Code Review Site!"
      Require valid-user
      AuthUserFile /home/gerrit/review-gerrit/htpasswd.conf
    </Location>
    ProxyPass / http://192.168.1.6:10000/
    proxyPassReverse / http://127.0.0.1:10000/
</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就可生成,然後編輯一下。

server {
     listen *:9999;
     server_name 192.168.1.6;
     allow   all;
     deny    all;
     auth_basic "Welcomme to Gerrit Code Review Site!";
     auth_basic_user_file /home/gerrit/review-gerrit/htpasswd.conf;

     location / {
        proxy_pass  http://127.0.0.1:10000;
     }
   }

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

   另外,關於gerrit伺服器的後臺許可權&專案管控,還在逐步研究。