这段时间,想搭建一个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服务器的后台权限&项目管控,还在逐步研究。

搭建gerrit服务器(apache&nginx反向代理方式)的更多相关文章

  1. IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容

    环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: 以下是使用IIS的域名: http://www.formuch.com/ http://www.fo ...

  2. (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容

    from :http://www.cnblogs.com/wuyou/p/3455619.html 环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: ...

  3. 服务器上nginx反向代理的配置

    Nginx不但是一款高性能的Web服务器,也是高性能的反向代理服务器.下面简单说说Nginx的反向代理功能. 反向代理是什么? 反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发 ...

  4. 使用Apache服务器实现Nginx反向代理

    实验环境:centos7 注:因为本次实验在同一台服务器上,Apache与Nginx同为80端口,所以改Apache端口为60 1 配置Nginx服务器: 编辑Nginx配置文件,写入以下内容 loc ...

  5. docker学习(6) docker中搭建java服务及nginx反向代理

    先看下容器规划: 上图中mysql容器的搭建见上篇博客,service1/2为java rest service,创建脚本如下: docker run -d -h service1 \ -v /Use ...

  6. Linux下nginx反向代理服务器安装与配置实操

    1.我们只要实现访问nginx服务器能跳转到不同的服务器即可,我本地测试是这样的, 在nginx服务器里面搭建了2个tomcat,2个tomcat端口分别是8080和8081,当我输入我nginx服务 ...

  7. 高级运维(二):搭建Nginx服务器、用户认证、基于域名的虚拟主机、SSL虚拟主机、Nginx反向代理

    一.搭建Nginx服务器 目标: 在IP地址为192.168.4.5的主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能: 1> SSL加密功能 2> 设置Ng ...

  8. 搭建nginx服务器,虚拟主机,反向代理

    1 搭建Nginx服务器 1.1 问题 在IP地址为192.168.10. 5的主机上安装部署Nginx服务,并可以将Nginx服务器升级到更高版本,要求编译时启用如下功能: SSL加密功能 查看服务 ...

  9. Nginx和Apache服务器上配置反向代理

    在实际项目过程中,由于网站要用到一个在线编辑器(个性化的在线编辑软件),需要跨域进行通信!由于跨域通信较多,所以当时就想到在网站服务器上代理编辑软件的请求! 这就是“反向代理”的实际需求! 一.Ngi ...

随机推荐

  1. linux shell symbolic link & soft link, symbol link, link

    linux shell symbolic link symbolic link https://en.wikipedia.org/wiki/Ln_(Unix) https://stackoverflo ...

  2. [BZOJ2120][BZOJ2453]数颜色

    [BZOJ2120]数颜色 试题描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中 ...

  3. hdu 3940

    #include<stdio.h> #include<math.h> #include<string.h> double first(double vx,doubl ...

  4. iview自定义配置

    说明 iview是一套基于 Vue.js 的高质量 UI 组件库.主要用户PC端页面设计. 官网:https://www.iviewui.com/ 1.在vue-cli项目中,添加该框架 第一步,安装 ...

  5. [NOIP2001] 提高组 洛谷P1027 Car的旅行路线

    题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个 矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中高速铁路了的单 ...

  6. hashlib-sha摘要算法模块

    摘要:hashlib: 摘要算法的模块 用处: 1.查看某两个文件是否完全一致 "abcdefggg" "abcdefhhg" 2.加密认证 把密码加密后写入文 ...

  7. nginx 安装过程中的not found

    linux 发行版本:centos zlib not found openssl not found yum install zlib-devel yum install openssl-devel

  8. poj3259,简单判断有无负环,spfa

    英语能力差!百度的题意才读懂!就是一个判断有无负环的题.SPFA即可.,注意重边情况!! #include<iostream> //判断有无负环,spfa #include<queu ...

  9. IO与文件读写---Java的IO流架构

    http://www.blogjava.net/pengpenglin/archive/2010/03/03/314239.html#314399 http://www.blogjava.net/jo ...

  10. [Javascript] Understanding the .constructor property on JavaScript Objects

    Constructor functions hold an interesting purpose in JavaScript. Unlike in classical languages, they ...