技术解析

docker、docker-compose 部署 gitlab,如何配置 https,让 git clone 地址与域名一样不带端口号
0
2021-06-17 20:57:14
idczone

使用 docker 部署 gitlab 时,gitlab 内部自带了 nginx,如果使用 80:80 、443:443 这样的映射方式,就会和本地的 nginx 冲突,如果使用非 80/443 映射容器内的 80 和 443,在访问域名和 clone 的时候必须加上端口号才可以访问、 通过查资料想到两种看似可行的解决办法:1 、使用容器内 nginx2 、使用外部 nginx,关闭容器内部的 nginx,两种办法均试过以失败告终


nginx 反向代理 gitlab

配置 traefik 管理 80,443 的流量

能说一下 docker 的 gitlab 容器中的配置吗?仅仅是 nginx 的反向代理设置是不行的

并没有使用 traefik 环境是本机的 nginx+docker 中的 gitlab

改本地 nginx 配置,加一层反向代理
或者
试试 https://github.com/nginx-proxy/nginx-proxy

外部 nginx 反向代理 gitlab 端口
gitlab 端口改成自定义端口,不要和 nginx 的 80 433 冲突就行,顺便把 gitlab 容器里的 nginx 关掉

外部 nginx 反向代理 gitlab 端口
gitlab 端口改成自定义端口,不要和 nginx 的 80 433 冲突就行,顺便把 gitlab 的 https 关掉,让 nginx 统一管理证书
上条是手误了

一个办法是用一个“网关”监听 80 443 并通过访问域名或路径路由到后台服务,传统的 web 服务器或者时髦点的 traefix 、envoy 都可以。
或者用传统的方法,给你部署服务的主机网卡分配多个 IP/IP 段,然后监听不同的 IP 地址。

我直接把 gitlab 的 nginx 禁用可以吗?

前些天刚搞过这个问题,可以参考一下,https://www.ishield.cn/article/81

非常感谢 这样设置后域名和使用 https clone 都是正常的不带端口号的吧

我安装你文档中的方法 去除配置 ssh 的那部分 nginx 报了 502

反向代理可解。留一个主 nginx 做 web 服务器,然后配置不同的虚拟主机指向背后的各个应用服务器。应用服务器的端口随便配

jwilder/nginx-proxy 配合 docker-compose 编排呗
具体去看 j 的 github

docker 运行的 gitlab 用不同的端口映射出去, 如 1080:80 ,1443:443;
然后采用宿主机 nginx vhost 的方式反向代理 gitlab

docker-compose 配置下环境变量

可以的,https 和 clone 都不带端口,你配置哪个地方报 502 了,
location / {
proxy_pass https://127.0.0.1:10443;
}
这块?

是的 我把 127.0.0.1 换成公网 ip 就可以访问,但是写成 127.0.0.1 或者 localhost 都不行

弄好了 是我自己给自己整懵逼了 刚开始用的本地的 nginx 后来换成 docker 但是地址写的 127.0.0.1 这样肯定访问不到的 非常感谢

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服