Перейти к основному содержимому

Шлюзы

Шлюз - это всегда доступный облачный балансировщик или WEB сервер с гибкими политиками обработки трафика.

gateways-main

Обзор

Вы можете зарезервировать свой или использовать домен в зоне tuna.am и создать для этого домена шлюз. В описании шлюзов используются политики трафика. После сохранения настройки применятся и запросы начнут обрабатываться нодой за которой закреплён домен и соответственно шлюз.

Когда это полезно?

Туннели это хорошо, но бывает окружение состоит из нескольких сервисов часть из которых запущено у вас, у вашего коллеги и в тестовом контуре. Но благодаря гибким политикам трафика вы можете распределять запросы в нужные точки, управлять заголовками, авторизацией, временем работы и много другое.

Как создать Шлюз?

  1. Зарезервируйте домен в разделе с доменами который вы планируете использовать, для примера в этой статье это будет demo.stage.tuna.am
  2. Перейдите в раздел Шлюзы и нажмите Добавить шлюз , выберете зарезервированный ранее домен.
  3. Опишите политику используя синтаксис политик трафика и нажмите Создать.

Если синтаксис корректен, шлюз сразу будет доступен и вы можете работать.

Пример

Представим демо стенд доступный только в будни, основная часть которого в тестовом контуре, а 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.