Gerrit重定向到错误的网址

时间:2016-07-21 15:48:22

标签: gerrit

我在我的Ubuntu Server 16.04系统上安装了Gerrit 2.12.3。

  • Gerrit正在聆听http://127.0.0.1:8102
  • 在nginx服务器后面,它正在监听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/

谁能告诉我如何解决它?

感谢。

1 个答案:

答案 0 :(得分:0)

gerrit.canonicalWebUrlhttpd.listenUrl的端口匹配是没有意义的。

  • 指定gerrit.canonicalWebUrl用户可通过Nginx代理访问的网址,例如https://gerrit.example.com
  • 依次在Nginx(侦听端口443)中的这个vhost在代理中配置为连接到httpd.listenUrl中指定的后端,例如,在你的情况下Gerrit会听的端口8102。

canonicalWebUrl仅用于Gerrit知道自己的主机名,例如发送电子邮件通知IIRC。

您可能也只是按照Gerrit Documentation并坚持端口,如此处所述。

编辑:我真的注意到你希望代理 AND Gerrit都在端口8102上监听 - 分别在127.0.0.1上的公共接口上监听。虽然这可行,但如果你确实确保Nginx 绑定到0.0.0.0,我认为这完全没有意义。您是否希望用户通过端口443上的HTTPS进行连接?