LAN内部Gerrit审核服务器,用户向外发送激活Email失败,提示502Proxy Error

sishuiliuyun 发布于 2015/05/04 14:41
阅读 2K+
收藏 0

因项目需要,最近要搭建一个Gerrit审核服务,尝试在LAN内部进行构建,选定的主机环境为:

1)  Ubuntu 12.04 (64bit)

2)  Gerrit 最新2.10 Release

3)JRE1.7

搭建过程:

1)在root用户下,配置Apache2虚拟主机,监听端口8081请求;
配置反向代理,web请求重定向到Gerrit监听端口8082

2)在新建的Gerrit用户下,配置Gerrit.conf中的【sendemail】字段:

[gerrit]
        basePath = git
        canonicalWebUrl = http://120.25.218.xxx:8082/
[database]
        type = h2
        database = db/ReviewDB
[index]
        type = LUCENE
[auth]
        type = HTTP
[sendemail]
        enable = true
        smtpServer = smtp.qq.com
        smtpServerPort = 465
        smtpEncrption = SSL
        smtpUser = xxxxxxxx@qq.com
        smtpPass = xxxxxxxx
        from = gerrit<xxxxxxxx@qq.com>
[container]
        user = gerrit
        javaHome = /usr/local/bin/jre1.7.0_76
[sshd]
        listenAddress = *:29418
[httpd]
[cache]

3) 配置nail.rc使用QQ外部SMTP代理,手动命令mail/mailx 发送邮件(不经过SSL认证),保证【发件人】和【收件人】地址一致,可以成功接收到邮件

4) 在Gerrit的Web页面,进入Gerrit用户账号设置,选择“contact information”中的“Register mail”,填写邮箱地址后,点击发送。页面长时间停留在【Working】状态,一段时间后弹出Apache错误信息【502 Proxy Error】

【详情如下】

[Mon May 04 14:27:15.594459 2015] [proxy_http:error] [pid 16368:tid 139868353029888] (70007)The timeout specified has expired: [client 116.25.163.101:54462] AH01102: error reading status line from remote server 120.25.218.113:8082, referer: http://120.25.218.xxx:8081/
[Mon May 04 14:27:15.594522 2015] [proxy:error] [pid 16368:tid 139868353029888] [client 116.25.163.101:54462] AH00898: Error reading from remote server returned by /accounts/self/emails/44xxxxxxx@qq.com, referer: http://120.25.218.xxx:8081/

个人猜想: 似乎是我的Apache代理设定存在问题,无法响应客户端web页面的HTTP请求。但不知如何调试?请教大侠,gerrit在配置外部SMTP代理时候,怎样才能发信?

加载中
0
Feng_Yu
Feng_Yu

我的配置,你参考一下,也是用了apache的反向代理,使用smtp发邮件

像这些密码应该都是出现在security.config文件的啊,你怎么直接写到主配置文件了?

猜测是from这里可能出了问题,from段一般都必须和登录名保持一致,这个是smtp服务端的限制。如果from不一致可能无法通过认证。你可以找个别的smtp客户端,比如msmtp,或者sendemail这个简易的perl脚本去测试一下你的配置。

[gerrit]
	basePath = git
	canonicalWebUrl = https://外网ip/gerrit
[database]
	type = mysql
	hostname = localhost
	database = reviewdb
	username = gerrit
[auth]
	type = HTTP
    logoutUrl = https://user:user@外网ip/gerrit/
[sendemail]
	enable = true
	smtpServer = smtp.ym.163.com
	smtpServerPort = 25
	smtpUser = username@domain.com
	from = username@domain.com
[container]
	user = ok988
	javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre
[sshd]
	listenAddress = *:29418
[httpd]
	listenUrl = proxy-https://127.0.0.1:8082/gerrit/
[cache]
	directory = cache
[core]
	streamFileThreshold = 1024m
[index]
	type = LUCENE


0
sishuiliuyun
sishuiliuyun

引用来自“Feng_Yu”的评论

我的配置,你参考一下,也是用了apache的反向代理,使用smtp发邮件

像这些密码应该都是出现在security.config文件的啊,你怎么直接写到主配置文件了?

猜测是from这里可能出了问题,from段一般都必须和登录名保持一致,这个是smtp服务端的限制。如果from不一致可能无法通过认证。你可以找个别的smtp客户端,比如msmtp,或者sendemail这个简易的perl脚本去测试一下你的配置。

[gerrit]
	basePath = git
	canonicalWebUrl = https://外网ip/gerrit
[database]
	type = mysql
	hostname = localhost
	database = reviewdb
	username = gerrit
[auth]
	type = HTTP
    logoutUrl = https://user:user@外网ip/gerrit/
[sendemail]
	enable = true
	smtpServer = smtp.ym.163.com
	smtpServerPort = 25
	smtpUser = username@domain.com
	from = username@domain.com
[container]
	user = ok988
	javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre
[sshd]
	listenAddress = *:29418
[httpd]
	listenUrl = proxy-https://127.0.0.1:8082/gerrit/
[cache]
	directory = cache
[core]
	streamFileThreshold = 1024m
[index]
	type = LUCENE


因为是第一次配置gerrit服务,有关secure.config文件的配置还不是很熟悉。后来发现,gerrit服务确实是调用secure.config中的密码进行登录。非常感谢!
返回顶部
顶部