使用 docker 部署 gitlab 时,gitlab 内部自带了 nginx,如果使用 80:80 、443:443 这样的映射方式,就会和本地的 nginx 冲突,如果使用非 80/443 映射容器内的 80 和 443,在访问域名和 clone 的时候必须加上端口号才可以访问、 通过查资料想到两种看似可行的解决办法:1 、使用容器内 nginx2 、使用外部 nginx,关闭容器内部的 nginx,两种办法均试过以失败告终
1
shynome 2020-06-14 16:58:32 +08:00 via Android
nginx 反向代理 gitlab
|
2
wh0syourda66y 2020-06-14 17:02:00 +08:00
配置 traefik 管理 80,443 的流量
|
3
GoRoad OP @shynome #1 能说一下 docker 的 gitlab 容器中的配置吗?仅仅是 nginx 的反向代理设置是不行的
|
4
GoRoad OP @wh0syourda66y #2 并没有使用 traefik 环境是本机的 nginx+docker 中的 gitlab
|
5
wangyzj 2020-06-14 17:05:36 +08:00
|
6
shynome 2020-06-14 18:01:28 +08:00 via Android
@GoRoad 外部 nginx 反向代理 gitlab 端口
gitlab 端口改成自定义端口,不要和 nginx 的 80 433 冲突就行,顺便把 gitlab 容器里的 nginx 关掉 |
7
shynome 2020-06-14 18:02:40 +08:00 via Android
@GoRoad 外部 nginx 反向代理 gitlab 端口
gitlab 端口改成自定义端口,不要和 nginx 的 80 433 冲突就行,顺便把 gitlab 的 https 关掉,让 nginx 统一管理证书 上条是手误了 |
8
Jirajine 2020-06-14 18:12:54 +08:00 via Android
一个办法是用一个“网关”监听 80 443 并通过访问域名或路径路由到后台服务,传统的 web 服务器或者时髦点的 traefix 、envoy 都可以。
或者用传统的方法,给你部署服务的主机网卡分配多个 IP/IP 段,然后监听不同的 IP 地址。 |
10
zkdfbb 2020-06-14 18:55:39 +08:00 1
前些天刚搞过这个问题,可以参考一下,https://www.ishield.cn/article/81
|
13
kaneg 2020-06-14 21:39:14 +08:00 via iPhone
反向代理可解。留一个主 nginx 做 web 服务器,然后配置不同的虚拟主机指向背后的各个应用服务器。应用服务器的端口随便配
|
14
lekai63 2020-06-14 21:44:00 +08:00 via iPhone
jwilder/nginx-proxy 配合 docker-compose 编排呗
具体去看 j 的 github |
15
JDog 2020-06-14 21:47:42 +08:00
docker 运行的 gitlab 用不同的端口映射出去, 如 1080:80 ,1443:443;
然后采用宿主机 nginx vhost 的方式反向代理 gitlab |
16
1044523901 2020-06-14 21:49:42 +08:00
docker-compose 配置下环境变量
|
17
zkdfbb 2020-06-14 22:16:00 +08:00
@GoRoad 可以的,https 和 clone 都不带端口,你配置哪个地方报 502 了,
location / { proxy_pass https://127.0.0.1:10443; } 这块? |