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-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 //指定要监听的虚拟主机端口
特别说明:
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服务:
Gerrit配置gerrit_sites下的etc/gerrit.config:
说明:
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、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-sitesgerrit-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
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- 6 个托管 git 仓库的地方
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- git多账号登录问题解析
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git 使用及常用命令
- git eclipse 插件的安装
- git fork同步是什么意思?
- Git使用小坑 Out of memory错误的解决方法
- Python的高级Git库 Gittle
- 使用GIT进行源码管理――GUI客户端小结