您的位置:首页 > 运维架构 > Nginx

Gerrit+(nginx/Apache) 的git CodeReview平台

2016-07-20 11:40 525 查看
准备工作:

git、gitweb、gerrit安装包、apache/nginx软件包

测试采用的OS是CentOS 6.7 X64系统

Git版本 1.7.1

Gerrit版本为:gerrit-2.10.6.war

Web服务器为标准的apache http版本

除了gerrit外,其他都可以直接通过yum 直接安装。

Gerrit需要进入官网:https://www.gerritcodereview.com/去下载。

Gerrit安装非常方便,如果要安装到根目录下的位置,必须使用root权限才能安装,安装方法为:

java –jar gerrit-2.10.6.war init –d gerrit-sites

gerrit-sites为安装的目录,可以自定。

安装需要修改的几点:

1. Authenticationmethod这里选择http

2. SMTP选项可以按实际情况进行配置

3. Proxyuses SSL 选择N

4. Behindreverseproxy选择Y 表示使用反向代理

插件不需要安装,其他的直接默认回车即可。

特别说明,Gerrit服务器的Listen 端口为8081,默认即可,不需要修改。

(1)使用apache作为WEB服务器的配置:

Apache的配置如下:

/etc/httpd/conf/httpd.conf:

Listen 9090 //加入要监听的端口

NameVirtualHost *:9090 //指定要监听的虚拟主机端口

<VirtualHost *:9090>
AllowEncodedSlashes On
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthBasicProvider file
AuthUserFile /home_ext/gerrit/gerrit_sites/etc/gerrit.password
</Location>

ProxyPass / http://192.168.1.187:8081/ ProxyPassReverse / http://192.168.1.187:8081/ </VirtualHost>


特别说明:

1. AuthUserFile表示http认证的password文件位置,该文件内容是根据htpasswd命令生成的,比如已经添加了jason和admin两个用户:

添加方法为htpasswd -b gerrit.password [用户名] [密码]

admin:P6Q41YBQgyNRo

jason:qr8pnigWBgTiM

2. ProxyPass中的端口一定要和之前gerrit中的端口对应。

3. VirtualHost中的端口9090不能跟gerrit的listen 端口相同,否则会有冲突导致gerrit启动失败。

(2)使用Nginx作为web服务:

server {
listen       9090;
#listen       192.168.1.187:9090;
#server_name  somename  alias  another.alias;

location /gerrit/ {
proxy_pass    http://192.168.1.187:8081/gerrit/; proxy_set_header  X-Forwarded-For $remote_addr;
proxy_set_header  Host $host;
auth_basic "Gerrit CodeReview";
auth_basic_user_file /home_ext/gerrit/gerrit_sites/etc/gerrit.password }}



Gerrit配置gerrit_sites下的etc/gerrit.config:

[gerrit]
basePath = git
canonicalWebUrl = http://192.168.1.187:8081/gerrit [database]
type = h2
database = db/ReviewDB
[auth]
type = HTTP
[sendemail]
smtpServer = smtp.qq.com
smtpUser = xxx@qq.com
[container]
user = root
javaHome = /opt/jdk1.8.0_91/jre
[sshd]
listenAddress = *:29419
[httpd]
listenUrl = proxy-http://192.168.1.187:8081/gerrit
[cache]
directory = cache

[gitweb]
cgi = /usr/share/gitweb/gitweb.cgi


说明:

CanonicalWebUrl:指定web访问gerrit的网址,端口号是及路径

auth:指定浏览器登录gerrit时的认证方式为http

httpdlistenurl:指定http代理地址

gitweb: gerrit中浏览项目时的gitweb,安装git后一定要同时安装好gitweb

启动/关闭Apache httpd:servicehttpd [start|stop]

启动/关闭nginx httpd:/usr/local/nginx/sbin/nginx

启动/关闭/重启gerrit:./ gerrit-sites/bin/gerrit.sh [start|stop|restart]

访问Gerrit方法:

nginx===> http://192.168.1.187:9090/gerrit
apache===> http://192.168.1.187:9090
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git gerrit coderevie