прослушиватель посланника 2 порта 2 кластера

#proxy #envoyproxy

#прокси #envoyproxy

Вопрос:

Я пытаюсь установить 2 прослушивателя в конфигурации с разными портами и кластерами для перенаправления

     static_resources:
  listeners:
  - name: listener_back_end
    address:
      socket_address: { address: 0.0.0.0, port_value: 9090 }
    filter_chains:
    - filters:
      - name: envoy.tcp_proxy
        config:
          stat_prefix: ingress_tcp
          cluster: back_end
      tls_context:
        common_tls_context:
          tls_certificates:
            - certificate_chain:
                filename: "/ProxyServerConfig/SSL/certificate.crt"
              private_key:
                filename: "/ProxyServerConfig/SSL/private.key"
  clusters:
  - name: back_end
    connect_timeout: 0.2s
    type: STATIC
    lb_policy: ROUND_ROBIN
    hosts: [{ socket_address: { address: 192.168.1.4, port_value: 1990 
}}]
  - name: listener_front_end
    address:
      socket_address: { address: 0.0.0.0, port_value: 443 }
    filter_chains:
    - filters:
      - name: envoy.tcp_proxy
        config:
          stat_prefix: ingress_tcp
          cluster: front_end
      tls_context:
        common_tls_context:
          tls_certificates:
            - certificate_chain:
                filename: "/ProxyServerConfig/SSL/certificate.crt"
              private_key:
                filename: "/ProxyServerConfig/SSL/private.key"
  clusters:
  - name: front_end
    connect_timeout: 0.2s
    type: STATIC
    lb_policy: ROUND_ROBIN
    hosts: [{ socket_address: { address: 192.168.1.5, port_value: 8081 
}}]
  

запускается envoy, но когда я пытаюсь открыть в браузере любой из этих портов, я получаю: ERR_CONNECTION_CLOSED. Каждая конфигурация работает отдельно…

Кто-нибудь может помочь? Спасибо!

Ответ №1:

попробуйте переместить прослушиватель из конфигурации кластера. Объедините своих слушателей и свои кластеры.

    static_resources:
  listeners:
  - name: listener_back_end
    address:
      socket_address: { address: 0.0.0.0, port_value: 9090 }
    filter_chains:
    - filters:
      - name: envoy.tcp_proxy
        config:
          stat_prefix: ingress_tcp
          cluster: back_end
      tls_context:
        common_tls_context:
          tls_certificates:
            - certificate_chain:
                filename: "/ProxyServerConfig/SSL/certificate.crt"
              private_key:
                filename: "/ProxyServerConfig/SSL/private.key"
  - name: listener_front_end
    address:
      socket_address: { address: 0.0.0.0, port_value: 443 }
    filter_chains:
    - filters:
      - name: envoy.tcp_proxy
        config:
          stat_prefix: ingress_tcp
          cluster: front_end
      tls_context:
        common_tls_context:
          tls_certificates:
            - certificate_chain:
                filename: "/ProxyServerConfig/SSL/certificate.crt"
              private_key:
                filename: "/ProxyServerConfig/SSL/private.key"
  clusters:
  - name: back_end
    connect_timeout: 0.2s
    type: STATIC
    lb_policy: ROUND_ROBIN
    hosts: [{ socket_address: { address: 192.168.1.4, port_value: 1990 
  - name: front_end
    connect_timeout: 0.2s
    type: STATIC
    lb_policy: ROUND_ROBIN
    hosts: [{ socket_address: { address: 192.168.1.5, port_value: 8081 
}}]