
使用 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 /div> @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 前些天刚搞过这个问题,可以参考一下,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; } 这块? |