V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
dzdh

K8S 中 nginx 海量域名对应同一程序的不同分支如何更优雅的解决

  •  1
     
  •   dzdh · Sep 21, 2022 · 1759 views
    This topic created in 1314 days ago, the information mentioned may be changed or developed.

    阿里云的 ack 集群

    user -> slb(4 层 80/443) -> pod-svc-clusterip(nginx) -> 7 层 80 -> svc(master/release/special-a/special-b)(clusterip)

    php 的程序,svc 就是不同分支代码根据 git ci/cd 自动打包的镜像,自动轮换。

    用户访问 slb 作为入口,80/443 4 层代理到 一个 nginx 的服务(没用 ingress )。这个 nginx 服务负责解析不同域名对应所属哪个分支(一个客户可能有多个域名和系统自带的域名)然后 proxy_pass 到 http://svc 的 clusterip

    nginx 的配置根据 map $host $version 匹配哪个$host 是哪个 svc 。

    另外有个问题,由于后端代码和前端代码是分离的两个仓库,也是两套 cicd 。现在前后端发版会触发两次 svc 的镜像更新。

    所以我想 一样根据 map $host $frontend_version { xx.com index_release.html }

    在 nginx 里 location = / { 怎么返回$frontend_version 这个 html 静态文件呢 }

    另一个问题是有更优雅的解决方案吗。ingress 是不行了。所有域名都弄到 ingress 的 yaml 配置估计十几兆了。

    2 replies    2022-09-22 09:05:48 +08:00
    ysicing
        1
    ysicing  
       Sep 21, 2022
    海量大概多少,我们曾经把 2.1w 域名怼到 ingress 上 😂
    dzdh
        2
    dzdh  
    OP
       Sep 22, 2022
    @ysicing 8w-9w 吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1155 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 23:13 · PVG 07:13 · LAX 16:13 · JFK 19:13
    ♥ Do have faith in what you're doing.