Как успешно направить посланника на мою вторую службу?

Я пытаюсь развернуть 2 службы, используя конфигурацию внешнего прокси-сервера envoy из envoy страница github

Моя первая служба - это главный сайт, который должен работать под «/», а вторая - это административная служба, которая должна работать под «/ admin». Проблема начинается, когда я объявляю префикс моей первой службы как «/». После этого Envoy вообще не направляет трафик в мою административную службу.

мой front-envoy.yaml:

static_resources:
 listeners:
 - address:
     socket_address:
       address: 0.0.0.0
       port_value: 80
   filter_chains:
   - filters:
     - name: envoy.http_connection_manager
       config:
         codec_type: auto
         stat_prefix: ingress_http
         route_config:
           name: local_route
           virtual_hosts:
           - name: backend
             domains:
             - “*”
             routes:
             - match:
                 prefix: “/”
               route:
                 cluster: service1
             - match:
                 prefix: “/admin”
               route:
                 cluster: service2
         http_filters:
         - name: envoy.router
           config: {}
 clusters:
 - name: service1
   connect_timeout: 0.25s
   type: strict_dns
   lb_policy: round_robin
   http2_protocol_options: {}
   hosts:
   - socket_address:
       address: service1
       port_value: 80
 - name: service2
   connect_timeout: 0.25s
   type: strict_dns
   lb_policy: round_robin
   http2_protocol_options: {}
   hosts:
   - socket_address:
       address: service2
       port_value: 80
admin:
 access_log_path: “/dev/null”
 address:
   socket_address:
     address: 0.0.0.0
     port_value: 8001

Пожалуйста посоветуй.


person DamianM    schedule 22.02.2019    source источник
comment
Ваша конфигурация выглядит нормально - она ​​должна соответствовать /admin и пересылать ее в service2, однако она будет включать /admin как часть пути. Есть ли у service2 обработчик для /admin? В противном случае вам придется переписать префикс перед его пересылкой.   -  person PoweredByOrange    schedule 25.02.2019


Ответы (1)


Проблема в том, что у вас есть «/» в качестве первого сопоставителя префикса, «/» в качестве префикса будет соответствовать всем запросам, он будет соответствовать запросам «/», а также запросам «/ admin». . Измените порядок совпадений, чтобы сначала было «/ admin», а затем «/». Должно работать нормально.

person dnivra    schedule 08.03.2019