zoukankan      html  css  js  c++  java
  • SNI 路由和多协议端口的 TCP

    文章转载自:https://mp.weixin.qq.com/s/nMMN7hAJK6SFn1V1YyxvHA

    下面是一个简单的示例配置 - 使用最新支持的 YAML 文件格式,将请求路由到一个数据库上面去:

    tcp:
      routers:
        to-database:
          entrypoints:
          - database-entrypoint
          rule: HostSNI(`*`)
          service: database-service
      services:     
        database-service:
          loadBalancer:
            servers:
            - address: xx.xx.xx.xx:xx
    

    上面这个配置示例表示每个以 database-entrypoint 结尾的请求都将被路由到 database-service 这个服务上去。

    此外通过 TLS,Traefik 还可以根据 SNI 来路由 TCP 请求。在下面示例中,Traefik 就将根据 SNI 将请求路由到两个数据库:

    tcp:
      routers:
        to-db-1:
          entrypoints:
          - web-secure
          rule: "HostSNI(`db1.domain`)"
          service: "db1"
          tls: {} 
        to-db-2:
          entrypoints:
          - web-secure
          rule: "HostSNI(`db2.domain`)"
          service: "db2"
          tls: {}
    

    另外 Traefik 还是支持 HTTP 和 TCP 在同一个端口上,如果你希望获得相同的入口的同时获取 HTTP 和 TCP 请求,那么 Traefik 可以很完美的来处理它。

    tcp:
      routers:
        to-db-1:
          entrypoints:
          - web-secure
          rule: "HostSNI(`db1.domain`)"
          service: "db-1"
          tls: {}
    http:
      routers:
        to-db1-dashboard:
          entrypoints:
          - web-secure
          rule: "Host(`dashboard.db1.domain`)"
          service: "db1-dashboard"
          tls: {}
    

    上面这个示例中, dashboard.db1.domain 上的 HTTP 请求将路由到数据库的 Dashboard 服务上,而上面的 db1.domain 上的 TCP 请求将路由到数据库上面去。

  • 相关阅读:
    UrlPathEncode与UrlEncode的区别
    大文件读取方法(C#)
    JavaScript与FileSystemObject
    ActiveXObject对象详解
    JS获取事件源对象
    实用JS大全
    设计模式的适用场景
    [转载]BigPipe技术
    window.location
    AJAX XMLHttpRequest
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/15744904.html
Copyright © 2011-2022 走看看