network route update
Команда обновляет конфигурацию существующего сетевого маршрута: тип, домен, сервис, порт, путь и upstream.
dockhost network route update --name <name> --domain <domain> --type <type> [options]
Опции
| Опция | Описание | Обязательно | По умолчанию |
|---|---|---|---|
| --name | Имя маршрута | Да | |
| --type | Тип маршрута: internal или external |
Нет | internal |
| --domain | Имя домена. Домен должен существовать и быть в статусе ready |
Да | |
| --service | Имя сервиса (для internal) | Нет | |
| --port | Порт сервиса в формате <port>/<protocol> (для internal) |
Нет | |
| --upstream | Внешний URL (для external) | Нет | |
| --path | Путь маршрута | Нет | |
| --rewrite | Rewrite правило в формате path:target:mode (можно указывать несколько раз) |
Нет | |
| -f, --force | Принудительное обновление даже без изменений | Нет | false |
| -p, --project | Имя проекта | Нет | Текущий проект |
Если изменения не обнаружены и не указан флаг --force, команда сообщает No change.
Rewrite правила
Rewrite правила позволяют перенаправлять или переписывать URL внутри маршрута. Каждое правило указывается через опцию --rewrite в формате path:target:mode.
Параметры rewrite правила:
| Параметр | Описание |
|---|---|
path |
Regex паттерн для матчинга URI (относительный путь от route.path) |
target |
Целевой путь (поддерживает capture groups: , , и т.д.) |
mode |
Режим: redirect (внешний редирект 302) или rewrite (внутренний) |
Режимы работы:
redirect— внешний редирект (HTTP 302). URL в браузере меняется.rewrite— внутренний rewrite. URL в браузере НЕ меняется, запрос проксируется с измененным URI.
Можно указать несколько rewrite правил, добавив опцию --rewrite несколько раз.
Примеры
Обновление пути маршрута:
> dockhost network route update --name web-route --domain example --service web --port 80/TCP --path /v2
Update network route web-route...
- Updated
Переключение маршрута на внешний тип:
dockhost network route update --name web-route --domain example --type external --upstream https://new-backend.example.com
Принудительное обновление:
dockhost network route update --name web-route --domain example --service web --port 80/TCP --force
Добавление rewrite правил:
dockhost network route update --name web-route --domain example --service web --port 80/TCP --rewrite /old:/new:redirect
Обновление нескольких rewrite правил:
dockhost network route update --name api-route --domain example --service api --port 8080/TCP --rewrite /v1(/.*)?:/v2$1:redirect --rewrite /legacy:/new:rewrite