这段时间,想搭建一个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文件:

  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。

  1. NameVirtualHost *:80
  2. Listen 80
  3. Listen 9999

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

  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就可生成,然后编辑一下。

  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. location / {
  9. proxy_pass  http://127.0.0.1:10000;
  10. }
  11. }

按照以上步骤,可以搭建一个gerrit服务器了。

另外,关于gerrit服务器的后台权限&项目管控,还在逐步研究。

最新文章

  1. Windows下MySQL无法启动
  2. 远方的塔--Pylons
  3. MeshDog
  4. Shell 去掉文本中的空格
  5. java开发环境的主题色的变化
  6. Apache使用mysql认证用户
  7. DELPHI 取文件名和扩展名
  8. jenkins持续集成配置备忘
  9. POJ 3186Treats for the Cows (区间DP)
  10. PCAP 文件内容解析命令
  11. 理解JavaScript中的事件处理 阻止冒泡event.stopPropagation();
  12. Hdu3812-Sea Sky(深搜+剪枝)
  13. python之pymysql模块学习(待完善...)
  14. ios开发常识(1)开发语言和参考资料
  15. 基于docker实现哨兵集群部署
  16. HTTP请求头和响应头部包括的信息有哪些?(转)
  17. mvc5之文件上传
  18. java构造器和构建器
  19. LightOJ 1224 - DNA Prefix - [字典树上DFS]
  20. Vue extend 学习

热门文章

  1. 动手实操:如何用 Python 实现人脸识别,证明这个杨幂是那个杨幂?
  2. POJ 2112: Optimal Milking【二分,网络流】
  3. 【二分贪心+精度问题】F. Pie
  4. iOS React Native 环境的搭建
  5. eclipse 修改Java代码 不用重新启动tomcat
  6. 2017CodeM初赛B场
  7. Linux下异常信号
  8. CSS布局之BFC和IFC
  9. NodeJS+MongoDB+AngularJS+Bootstrap书店示例
  10. Java 等额本金等额本息工具类