Шлюзы
Шлюз - это всегда доступный облачный балансировщик или WEB сервер с гибкими политиками обработки трафика.
Обзор
Вы можете зарезервировать свой или использовать домен в зоне tuna.am и создать для этого домена шлюз. В описании шлюзов используются политики трафика. После сохранения настройки применятся и запросы начнут обрабатываться нодой за которой закреплён домен и соответственно шлюз.
Когда это полезно?
Туннели это хорошо, но бывает окружение состоит из нескольких сервисов часть из которых запущено у вас, у вашего коллеги и в тестовом контуре. Но благодаря гибким политикам трафика вы можете распределять запросы в нужные точки, управлять заголовками, авторизацией, временем работы и много другое.
Как создать Шлюз?
- Зарезервируйте домен в разделе с доменами который вы планируете использовать, для примера в этой статье это будет
demo.stage.tuna.am
- Перейдите в раздел Шлюзы и нажмите Добавить шлюз , выберете зарезервированный ранее домен.
- Опишите политику используя синтаксис политик трафика и нажмите Создать.
Если синтаксис корректен, шлюз сразу будет доступен и вы можете работать.
Пример
Представим демо стенд доступный только в будни, основная часть которого в тестовом контуре, а 2 микросервиса за туннелями разработчиков.
rules:
- expressions:
- now().Weekday().String() in ["Saturday", "Sunday"]
actions:
- type: custom_response
config:
statusCode: 200
content: В выходные не работаем!
headers:
content-type: "text/plain; charset=utf-8"
- expressions:
- hasPrefix(req.URL.Path, "/admin")
actions:
- type: reverse_proxy
config:
url: "https://valera-dev.run.tuna.am"
- expressions:
- hasPrefix(req.URL.Path, "/checkout")
actions:
- type: reverse_proxy
config:
url: "https://alena-dev.run.tuna.am"
- actions:
- type: reverse_proxy
config:
url: "https://testing.example.com"
И так по выходным вы будете получать сообщение В выходные не работаем!
, а в будни все основные запросы отправятся в тестовый контур на https://testing.example.com
, всё за /admin
уйдёт на туннель https://valera-dev.run.tuna.am
, а /checkout
к https://alena-dev.run.tuna.am
.