我在我的Ubuntu Server 16.04系统上安装了Gerrit 2.12.3。
http://127.0.0.1:8102
。 https://SERVER1:8102
。 etc/gerrit.config
文件的一些内容如下:
[gerrit]
basePatr = git
canonicalWebUrl = https://SERVER1:8102/
[httpd]
listenUrl = proxy-https://127.0.0.1:8102/
我的nginx设置的一些内容如下:
server {
listen 10.10.20.202:8102 ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/server1.crt;
ssl_certificate_key /etc/nginx/ssl/server1.key;
location / {
# Allow for large file uploads
client_max_body_size 0;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8102;
}
}
Gerrit几乎所有的功能现在都很好用。但我无法解决的一个问题是:
通知电子邮件中生成的网址为https://SERVER1:8102/11
,这似乎是正确的,但当我点击该链接时,它会重定向到https://SERVER1/#/c/11/
而不是https://SERVER1:8102/#/c/11/
谁能告诉我如何解决它?
感谢。
答案 0 :(得分:0)
gerrit.canonicalWebUrl
和httpd.listenUrl
的端口匹配是没有意义的。
gerrit.canonicalWebUrl
用户可通过Nginx代理访问的网址,例如https://gerrit.example.com
。httpd.listenUrl
中指定的后端,例如,在你的情况下Gerrit会听的端口8102。 canonicalWebUrl
仅用于Gerrit知道自己的主机名,例如发送电子邮件通知IIRC。
您可能也只是按照Gerrit Documentation并坚持端口,如此处所述。
编辑:我真的注意到你希望代理 AND Gerrit都在端口8102上监听 - 分别在127.0.0.1上的公共接口上监听。虽然这可行,但如果你确实确保Nginx 不绑定到0.0.0.0,我认为这完全没有意义。您是否希望用户通过端口443上的HTTPS进行连接?