Gerrit安装及使用Nginx反向代理
Gerrit安装及使用Nginx反向代理
简介
Gerrit做为Google用来管理Android代码版本的工具,是一种免费、开放源代码的代码审查软件,使用网页界面。本文主要介绍它的安装步骤。
一、准备工作
- 操作系统:Linux 这里用的是Ubuntu16.04
- Java环境:Java 1.6以上版本都可以 本机装的是64-Bit Server VM Java8的服务器版本
- Git:直接安装sudo apt-get install git
- Nginx:可以在安装Gerrit之后安装,版本nginx-1.13.9,gerrit的Authentication method方式为http需要使用反向代理,所以需要Nginx或者Apache服务器。
- Mysql:这里不用Gerrit默认的H2数据库,使用Mysql存储review仓库。安装Mysql数据库,并创建reviewdb和gerrit用户并授权。
$ mysql -u root -p
mysql> create database reviewdb;
Query OK, 1 row affected (0.01 sec)mysql> CREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'gerrit';
Query OK, 0 rows affected (0.01 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> grant all privileges on reviewdb.* to gerrit@localhost identified by 'gerrit';
Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| reviewdb |
| sys |
+--------------------+
8 rows in set (0.01 sec)
- 创建Gerrit管理帐号
sudo adduser gerritsudo passwd gerrit
`并将gerrit加入sudo权限`
sudo visudogerrit ALL=(ALL:ALL) ALL
- 下载Gerrit: 下载地址:https://www.gerritcodereview.com/download/ 获得安装包gerrit-2.14.6.war
- 安装目录:创建安装目录,并把目录赋权给gerrit用户(也可以切换gerrit帐号后安装时自动创建)
$ mkdir gerrit
$ chown -R gerrit.gerrit gerrit
二、安装与配置Gerrit
在gerrit账号下进行配置安装
# su - gerrit# java -jar gerrit-2.14.6.war init -d ../gerritUsing secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2018-02-27 15:52:45,848] [main] INFO com.google.gerrit.server.config.GerritServerConfigProvider : No /www/download/../gerrit/etc/gerrit.config; assuming defaults*** Gerrit Code Review 2.14.6
***Create '/www/download/../gerrit' [Y/n]? y*** Git Repositories
***Location of Git repositories [git]:*** SQL Database
***Database server type [h2]: mysqlGerrit Code Review is not shipped with MySQL Connector/J 5.1.41
** This library is required for your configuration. **
Download and install it now [Y/n]? y
Downloading https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.41/mysql-connector-java-5.1.41.jar ... OK
Checksum mysql-connector-java-5.1.41.jar OK
Server hostname [localhost]:
Server port [(mysql default)]:
Database name [reviewdb]:
Database username [root]: gerrit
gerrit's password :confirm password :*** Index
***Type [lucene/?]:*** User Authentication
***Authentication method [openid/?]: http
Get username from custom HTTP header [y/N]? y
Username HTTP header [SM_USER]:
SSO logout URL :
Enable signed push support [y/N]? n*** Review Labels
***Install Verified label [y/N]? y*** Email Delivery
***SMTP server hostname [localhost]:
SMTP server port [(default)]:
SMTP encryption [none/?]:
SMTP username :*** Container Process
***Run as [root]:
Java runtime [/usr/lib/java/jdk1.8.0_162/jre]:
Copy gerrit-2.14.6.war to ../gerrit/bin/gerrit.war [Y/n]? y
Copying gerrit-2.14.6.war to ../gerrit/bin/gerrit.war*** SSH Daemon
***Listen on address [*]:
Listen on port [29418]:
Generating SSH host key ... rsa... dsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done*** HTTP Daemon
***Behind reverse proxy [y/N]? y
Proxy uses SSL (https://) [y/N]? n
Subdirectory on proxy server [/]:
Listen on address [*]:
Listen on port [8081]:
Canonical URL [http://UbuntuHost/]: http://git.xxxx.com*** Cache
****** Plugins
***Installing plugins.
Install plugin commit-message-length-validator version v2.14.6 [y/N]? y
Installed commit-message-length-validator v2.14.6
Install plugin download-commands version v2.14.6 [y/N]? y
Installed download-commands v2.14.6
Install plugin hooks version v2.14.6 [y/N]? y
Installed hooks v2.14.6
Install plugin replication version v2.14.6 [y/N]? y
Installed replication v2.14.6
Install plugin reviewnotes version v2.14.6 [y/N]? y
Installed reviewnotes v2.14.6
Install plugin singleusergroup version v2.14.6 [y/N]? y
Installed singleusergroup v2.14.6
Initializing plugins.......
Initialized /www/gerrit
Executing /www/download/../gerrit/bin/gerrit.sh start
Starting Gerrit Code Review: OK
Waiting for server on localhost:8081 ... OK
完成后配置文件如下:
[gerrit]basePath = gitserverId = 6331fedb-dc40-46a0-a4ab-de09ee155b9fcanonicalWebUrl = http://git.xxxx.com
[database]type = mysqlhostname = localhostdatabase = reviewdbusername = gerrit
[index]type = LUCENE
[auth]type = HTTP
[receive]enableSignedPush = false
[sendemail]smtpServer = localhost
[container]user = gerritjavaHome = /usr/lib/java/jdk1.8.0_162/jre
[sshd]listenAddress = *:29418
[httpd]listenUrl = proxy-http://*:8081/
[cache]directory = cache
- canonicalWebUrl 就是gerrit的主页地址。退出Gerrit会跳转到这个地址。
- auth的类型一定要是http
- sendemail选项就是我们的邮件发送设置,如果你的gerrit服务器上没有搭建邮件服务器,那你可以用smtp发件代理,可以设置smtp服务器地址是 smtp.xxx.com ,端口使用 465 ,因为使用的是 SSL 认证,然后 smtpPass 填写上之前专用邮箱的密码。sendemail有什么作用呢?当有新的允许登录web页面的成员需要修改自己的邮箱时,点击注册邮箱,我们这个专用邮箱就会向该成员申请的邮箱中发送一封确认邮件。位于Administrator组中的用户,设置了想要watch的项目之后,所有和该项目相关的事件,都能收到一封邮件提醒,发送来自于这个专有邮箱
- sshd就是ssh监听的端口,这个我们在安装gerrit时采用的是默认的配置,也就是 29418 这个端口
- httpd表示反向监听的端口,这里注意要修改成 proxy-http://*:8080/ ,默认值是没有proxy的
创建Gerrit管理员帐号:
# htpasswd -c /www/gerrit/gerrit.password admin
New password:
如果没有htpasswd这个工具,按提示安装即可。第一个帐号默认为管理员帐号。
三、配置nginx反向代理
在nginx配置文件中加入反向代理的配置文件:include reverse-proxy.conf;
reverse-proxy.conf文件如下:
server
{listen 80;server_name git.xxxx.com;auth_basic "Welcomme to Gerrit Code Review Site!";auth_basic_user_file /www/gerrit/gerrit.password;location / {proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://localhost:8081;}access_log logs/gerrit_access.log;
}
给Nginx访问Gerrit的权限
setfacl -m g:nginx:rx ../gerrit
重启Nginx
完成之后,我们可以在浏览器中输入Nginx代理Gerrit的网址,看看是不是可以弹出输入用户名和密码的对话框(如果没有,请检查你的Nginx配置);然后输入正确的用户名(我们创建的密码文件用户是admin)和密码,如果你能登录到这个页面,就表示你的gerrit已经成功配置好了!
其它
退出gerrit网页
如果你已经成功登录了gerrit的网页,那么如果你想退出,请直接关闭整个浏览器,gerrit没有做logout的session清除,所以如果你直接点击网页右上角的logout,仍会返回到gerrit配置canonicalWebUrl的地址 。关于登出,gerrit给出的原因是:
You are using HTTP Basic authentication. There is no way to tell abrowser to quit sending basic authentication credentials, to logout with basicauthentication is to close the Webbrowser.
NOTE:使用OpenID的authentication方式应该不会有这个问题。
卸载Gerrit
如果你的安装过程出错了,或者觉得安装的不够好,比如文件位置什么的,你可以重新安装。
如果你的gerrit服务已经处于运行中,需要先执行下面的命令把它停掉:
# gerrit/bin/gerrit.sh stop
删除reviewdb数据库中的内容,确保重新安装没有问题。
然后再试着删除整个 gerrit 文件目录就好了。
参考
https://www.tuicool.com/articles/iAFBvu7
Gerrit安装及使用Nginx反向代理相关推荐
- gerrit安装配置(http反向代理)
我的环境:linux:fedora21 一.软件安装 1.安装git.apache sudo yum install git httpd 2.安装并查看java安装情况: sudo yum insta ...
- nginx请求转发被拒绝_解决nginx反向代理proxy不能转发header报头
做了一个德国高防plesk卖虚拟主机,奈何地理位置太过于遥远,控制台使用上速度难以接受.用户站点可以使用cloudflare等等的加速手段,控制台能否也这么干呢?理论是完全可以的,那么时间上手看吧.安 ...
- MacOS开发必备工具brew,安装nginx反向代理,替代linux工具 apt-get和 yum...
Mac os开发者必备工具 brew,替代Linux系统中的 apt-get和yum工具,本文介绍Mac电脑安装Homebrew,并下载安装软件nginx反向代理过程. 1.安装Homebrew 在苹 ...
- 云服务器,Linux上安装xampp,搭建node服务,云服务器Firewalld、iptables,nginx反向代理
目录 写在前面的 前期准备 下载xampp: xampp安装步骤 1.首先链接远程linux服务器 2.xshell终端执行安装命令 3.启动:xampp服务 4.访问数据库,修改数据库密码 安装守护 ...
- docker安装_使用docker在带有SSL的Nginx反向代理后面部署Quarkus或任何基于Java的微服务...
docker安装 已经有一段时间了,但是根据一位朋友的要求,我将向您展示如何使用docker在Nginx反向代理后面部署Quarkus微服务. 我们会做什么- 我将在centos 8主机上安装dock ...
- Nginx 概述 如何正规安装 静态网页配置 反向代理配置 负载均衡配置
目录 1. 基本概念 1.1 Nginx初步认识 1.2 正向/反向代理 1.3 域名和IP 2. Nginx安装和配置 2.1 安装Nginx 2.2 配置 3. Nginx的使用 3.1 部署静态 ...
- Linux Centos7 Nginx的安装与配置、反向代理、负载均衡、https配置
Nginx的安装 1.nginx安装包下载地址 http://nginx.org/en/download.html 2.把nginx安装包上传到Linux系统上 2.1 Xhell 自带上传工具. 2 ...
- 在一台win10系统的电脑里安装虚拟机运行CentOS7并实现nginx反向代理从而用域名访问本机的微服务项目
在虚拟机里的CentOS7安装配置nginx,之前需要一些依赖库作为编译安装的条件,具体作用和命令详情跳转我之前的博客. 安装并使用VMware-workstation-full-15.5.0安装Ce ...
- nginx反向代理原理及配置详解
nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...
最新文章
- bs4爬取的时候有两个标签相同_python爬虫初体验,爬取中国最好大学网大学名次...
- php 循环写入 缓冲,php利用缓冲实现动态输出(flush,ob_flush)
- android token过期怎么跳转登录_用sa-token轻松解决网站权限验证
- java线程未执行完成,java线程测试-一个奇怪的景况-执行未完成直接结束了
- Cookie、Session、Token那点事儿
- 解决Win7英文版显示中文乱码
- 系统相机裁剪比例_要不要买全画幅相机?
- JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore XXX “迁移到行业标准格式?
- IOS 封装轮播图
- python selenium自动化测试面试题_selenium 自动化测试面试题及答案
- symfony api 异常处理_dubbo-RPC服务的异常处理
- _stdcall与_cdecl的区别
- 前端代码编辑器:sublime text 4 for Mac v4115中文版
- 终于把所有的Python库,都整理出来啦!
- 线性代数的本质(Essense of Linear Algebra)——3Blue1Brown
- C语言根号下ln怎么表示,用C语言怎么编y=sin(根号下ax)+ln(a+X)
- FusionSphere虚拟化套件
- 工作之外如何实现自我提升
- mysql 快照 理解_MySQL - 当前读和快照读
- Java程序员必备技能