Gitlab链接到“https:// gitlab /”
我从官方图像gitlab/gitlab-ce:latest
在docker容器中安装了gitlab。 该图像具有文件gitlab.rb
中的所有configuration。 Https是由一个nginx反向代理完成的。
我的问题是,当gitlab有自己的绝对链接时,它总是链接到https://gitlab/
。 这个主机也可以在“新build组”对话框中看到:
Docker调用:
docker run \ --name git \ --net mydockernet \ --ip 172.18.0.2 \ --hostname git.mydomain.com \ --restart=always \ -p 766:22 \ -v /docker/gitlab/config:/etc/gitlab \ -v /docker/gitlab/logs:/var/log/gitlab \ -v /docker/gitlab/data:/var/opt/gitlab \ -d \ gitlab/gitlab-ce:latest
gitlab.rb:
external_url 'https://git.mydomain.com' ci_nginx['enable'] = false nginx['listen_port'] = 80 nginx['listen_https'] = false gitlab_rails['gitlab_shell_ssh_port'] = 766
Nginxconfiguration:
upstream gitlab { server 172.18.0.2; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name git.mydomain.com; ssl on; ssl_certificate /etc/ssl/certs/mydomain.com.chained.pem; ssl_certificate_key /etc/ssl/private/my.key; location / { proxy_pass http://gitlab/; proxy_read_timeout 10; } }
我试图用nginxreplace错误的URL。 这在外观上就像在屏幕截图中一样,但不适用于链接:
sub_filter 'https://gitlab/' 'https://$host/'; sub_filter_once off;
您已经在映射卷/etc/gitlab/gitlab.rb
正确设置了您的url
external_url 'https://git.mydomain.com'
运行sudo gitlab-ctl reconfigure
使更改生效。
问题解决了。 这是在nginx反向代理configuration。 我命名上游的“gitlab”,不知何故这个名字发现它的方式进入网页:
upstream gitlab { server 172.18.0.2; } ... proxy_pass http://gitlab/;
我没想到。 我甚至省略了原来问题中的上游部分,因为我认为上游名称只是一个内部名称,将被定义的IPreplace。
所以对我来说,解决的办法是把完整的领域写入上游:
upstream git.mydomain.com{ server 172.18.0.2; } ... proxy_pass http://git.mydomain.com/;