Маршрутизация запроса к нескольким сервисам на основе baseURI - PullRequest
1 голос
/ 26 апреля 2019

У меня есть несколько служб, работающих под Nginx.Все эти сервисы находятся на разных портах.

Как перенаправить запрос к определенной службе на основе начального base URI?

, например, для URL https://my-domain/serviceA/v1/schema на порт 8181 как /v1/schema и https://my-domain/serviceB/v1/api/schema на порт 9191 as /v1/api/schema.

До сих пор я мог перенаправить запрос с использованием location на определенный порт на основе начального пути, но не смог удалить /serviceA или /serviceB из URI.

1 Ответ

0 голосов
/ 26 апреля 2019

Оператор proxy_pass может содержать дополнительный компонент URI.Подробнее см. в этом документе .

Например:

location /serviceA/ {
    proxy_pass http://192.168.0.2:8080/;
    ...
}

Компонент URI является окончательным / в операторе proxy_pass.URI /serviceA/foo преобразуется в /foo перед передачей в восходящем направлении.Используйте завершающий / для значения location для правильного перевода.

...