V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
GoRoad
V2EX  ›  Linux

docker、docker-compose 部署 gitlab,如何配置 https,让 git clone 地址与域名一样不带端口号

  •  1
     
  •   GoRoad · 2020-06-14 16:55:07 +08:00 · 4253 次点击
    这是一个创建于 1404 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2020-06-14 22:33:05 +08:00
    问题已解决,参考 10 楼老哥的文章
    19 条回复    2020-06-14 22:24:55 +08:00
    shynome
        1
    shynome  
       2020-06-14 16:58:32 +08:00 via Android
    nginx 反向代理 gitlab
    wh0syourda66y
        2
    wh0syourda66y  
       2020-06-14 17:02:00 +08:00
    配置 traefik 管理 80,443 的流量
    GoRoad
        3
    GoRoad  
    OP
       2020-06-14 17:02:35 +08:00
    @shynome #1 能说一下 docker 的 gitlab 容器中的配置吗?仅仅是 nginx 的反向代理设置是不行的
    GoRoad
        4
    GoRoad  
    OP
       2020-06-14 17:03:29 +08:00
    @wh0syourda66y #2 并没有使用 traefik 环境是本机的 nginx+docker 中的 gitlab
    wangyzj
        5
    wangyzj  
       2020-06-14 17:05:36 +08:00
    改本地 nginx 配置,加一层反向代理
    或者
    试试 https://github.com/nginx-proxy/nginx-proxy
    shynome
        6
    shynome  
       2020-06-14 18:01:28 +08:00 via Android
    @GoRoad 外部 nginx 反向代理 gitlab 端口
    gitlab 端口改成自定义端口,不要和 nginx 的 80 433 冲突就行,顺便把 gitlab 容器里的 nginx 关掉
    shynome
        7
    shynome  
       2020-06-14 18:02:40 +08:00 via Android
    @GoRoad 外部 nginx 反向代理 gitlab 端口
    gitlab 端口改成自定义端口,不要和 nginx 的 80 433 冲突就行,顺便把 gitlab 的 https 关掉,让 nginx 统一管理证书

    上条是手误了
    Jirajine
        8
    Jirajine  
       2020-06-14 18:12:54 +08:00 via Android
    一个办法是用一个“网关”监听 80 443 并通过访问域名或路径路由到后台服务,传统的 web 服务器或者时髦点的 traefix 、envoy 都可以。
    或者用传统的方法,给你部署服务的主机网卡分配多个 IP/IP 段,然后监听不同的 IP 地址。
    GoRoad
        9
    GoRoad  
    OP
       2020-06-14 18:29:28 +08:00
    @shynome #7 我直接把 gitlab 的 nginx 禁用可以吗?
    zkdfbb
        10
    zkdfbb  
       2020-06-14 18:55:39 +08:00   ❤️ 1
    前些天刚搞过这个问题,可以参考一下,https://www.ishield.cn/article/81
    GoRoad
        11
    GoRoad  
    OP
       2020-06-14 19:19:52 +08:00
    @zkdfbb #10 非常感谢 这样设置后域名和使用 https clone 都是正常的不带端口号的吧
    GoRoad
        12
    GoRoad  
    OP
       2020-06-14 21:31:34 +08:00
    @zkdfbb #10 我安装你文档中的方法 去除配置 ssh 的那部分 nginx 报了 502
    kaneg
        13
    kaneg  
       2020-06-14 21:39:14 +08:00 via iPhone
    反向代理可解。留一个主 nginx 做 web 服务器,然后配置不同的虚拟主机指向背后的各个应用服务器。应用服务器的端口随便配
    lekai63
        14
    lekai63  
       2020-06-14 21:44:00 +08:00 via iPhone
    jwilder/nginx-proxy 配合 docker-compose 编排呗

    具体去看 j 的 github
    JDog
        15
    JDog  
       2020-06-14 21:47:42 +08:00
    docker 运行的 gitlab 用不同的端口映射出去, 如 1080:80 ,1443:443;
    然后采用宿主机 nginx vhost 的方式反向代理 gitlab
    1044523901
        16
    1044523901  
       2020-06-14 21:49:42 +08:00
    docker-compose 配置下环境变量
    zkdfbb
        17
    zkdfbb  
       2020-06-14 22:16:00 +08:00
    @GoRoad 可以的,https 和 clone 都不带端口,你配置哪个地方报 502 了,

    location / {
    proxy_pass https://127.0.0.1:10443;
    }

    这块?
    GoRoad
        18
    GoRoad  
    OP
       2020-06-14 22:17:49 +08:00
    @zkdfbb #17 是的 我把 127.0.0.1 换成公网 ip 就可以访问,但是写成 127.0.0.1 或者 localhost 都不行
    GoRoad
        19
    GoRoad  
    OP
       2020-06-14 22:24:55 +08:00
    @zkdfbb #17 弄好了 是我自己给自己整懵逼了 刚开始用的本地的 nginx 后来换成 docker 但是地址写的 127.0.0.1 这样肯定访问不到的 非常感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5467 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 286ms · UTC 03:11 · PVG 11:11 · LAX 20:11 · JFK 23:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.