Istio: убран маршрут /workflows/, он перехватывал навигацию SPA
Адрес вида /workflows/<uuid> — это путь ВНУТРИ SPA платформы, который должна обработать она сама, отдав index.html. Маршрут /workflows/ на frontend-svc.processing уводил его в nginx микрофронтенда, где такого файла нет, и браузер получал 404 Not Found — nginx/1.19.6 Статика микрофронтенда доезжает и без этого маршрута: nginx платформы сам проксирует /workflows/*.js в processing (apps/django/aero/nginx-configmap). Это уже проверялось — 200, 282339 байт. Маршрут /workflows/api/ оставлен: его nginx платформы не обслуживает, а бандл ходит по нему относительным путём.
This commit is contained in:
parent
f3c2fa194b
commit
3640bc8229
@ -111,29 +111,28 @@ spec:
|
|||||||
prefix: /media/
|
prefix: /media/
|
||||||
service: s3-proxy-svc.django.svc.cluster.local
|
service: s3-proxy-svc.django.svc.cluster.local
|
||||||
port: 80
|
port: 80
|
||||||
# Микрофронтенд workflows и его API. Порядок внутри пары
|
# API микрофронтенда workflows. Висит на домене платформы, а
|
||||||
# значим: /workflows/api/ обязан идти перед /workflows/, иначе
|
# не на отдельном поддомене: адреса вшиты в JS-бандл на этапе
|
||||||
# запросы к API уйдут в раздачу статики.
|
# сборки и указывают на тот же origin относительными путями.
|
||||||
#
|
#
|
||||||
# Оба маршрута висят на домене платформы, а не на отдельном
|
# Маршрут живёт в ЭТОМ VirtualService, а не в своём: Istio не
|
||||||
# поддомене, потому что адреса бэкендов вшиты в JS-бандл на
|
|
||||||
# этапе сборки (константа __BUILD_ENV__) и указывают на тот же
|
|
||||||
# origin относительными путями. Отдельный поддомен означал бы
|
|
||||||
# пересборку образа.
|
|
||||||
#
|
|
||||||
# Маршруты живут в ЭТОМ VirtualService, а не в своём: Istio не
|
|
||||||
# сливает несколько VirtualService, привязанных к одной паре
|
# сливает несколько VirtualService, привязанных к одной паре
|
||||||
# хост+gateway, — часть правил молча потерялась бы.
|
# хост+gateway, — часть правил молча потерялась бы.
|
||||||
|
#
|
||||||
|
# ЗДЕСЬ НЕТ МАРШРУТА /workflows/ НА frontend-svc.processing, и
|
||||||
|
# это осознанно. Такой маршрут был и ломал навигацию: адрес
|
||||||
|
# вида /workflows/<uuid> — это путь ВНУТРИ SPA платформы,
|
||||||
|
# который должен отдать её index.html, а istio уводил его в
|
||||||
|
# nginx микрофронтенда, где такого файла нет:
|
||||||
|
# 404 Not Found — nginx/1.19.6
|
||||||
|
# Статика микрофронтенда при этом доезжает и без него: nginx
|
||||||
|
# платформы сам проксирует /workflows/*.js в processing
|
||||||
|
# (apps/django/aero/nginx-configmap.yaml). Проверено — 200.
|
||||||
- path:
|
- path:
|
||||||
prefix: /workflows/api/
|
prefix: /workflows/api/
|
||||||
rewrite: /api/
|
rewrite: /api/
|
||||||
service: backend-svc.processing.svc.cluster.local
|
service: backend-svc.processing.svc.cluster.local
|
||||||
port: 80
|
port: 80
|
||||||
- path:
|
|
||||||
prefix: /workflows/
|
|
||||||
rewrite: /
|
|
||||||
service: frontend-svc.processing.svc.cluster.local
|
|
||||||
port: 80
|
|
||||||
- path:
|
- path:
|
||||||
prefix: /api/
|
prefix: /api/
|
||||||
service: backend-svc.django.svc.cluster.local
|
service: backend-svc.django.svc.cluster.local
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user