我在我的ngnix后面运行gitlab。
服务器1(反向代理):启用了https的Ngnix,然后是/ git:
的配置location ^~ /git/ {
proxy_pass http://134.103.176.101:80;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
}
如果我在gitlab设置上没有更改任何内容,这将有效但由于外部http请求不安全,如:
'http://www.gravatar.com/avatar/c1ca2b6e2cd20fda9d215fe429335e0e?s=120&d=identicon'. This content should also be served over HTTPS.
所以,如果我更改隐藏服务器2(http gitlab)上的gitlab配置:
external_url 'https://myurl'
nginx['listen_https'] = false
如文件中所述。我将收到错误的网关错误502.没有加载页面。
我该怎么办?
编辑:通过设置:
将其黑客攻击gitlab_rails['gravatar_plain_url'] = 'https://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon'
到https ...这工作但不是一个干净的解决方案。 (clone url仍然是http://)
答案 0 :(得分:7)
我运行了类似的设置,我也遇到了这个问题。根据{{3}}:
默认情况下,当您指定以' https'开头的external_url时,Nginx将不再侦听端口80上未加密的HTTP流量。
我看到您通过HTTP和端口80转发流量,但告诉GitLab使用HTTPS外部URL。在这种情况下,您需要设置docs。
nginx['listen_port'] = 80 # or whatever port you're using.
另外,请记住在更改gitlab.rb
后重新加载gitlab配置。您可以使用此命令执行此操作:
sudo gitlab-ctl reconfigure
供参考,以下是我如何进行重定向:
反向代理服务器上的Nginx配置:
location / {
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_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on;
proxy_pass http://SERVER_2_IP:8888;
}
GitLab服务器上的GitLab配置文件gitlab.rb
:
external_url 'https://gitlab-subdomain.domain.com'
nginx['listen_addresses'] = ['SERVER_2_IP']
nginx['listen_port'] = 8888
nginx['listen_https'] = false