R / Plumber: перенаправление пользовательского интерфейса Swagger через обратный прокси Nginx - PullRequest
2 голосов
/ 30 мая 2019

Фон

У меня есть удаленный сервер, на котором работает служба R API с использованием Plumber.Он полностью работоспособен в том смысле, что я могу вызвать свою службу извне.

Я использую настройку обратного прокси Ubuntu / Nginx.Служба Plumber прослушивает порт 1163. Впоследствии я реализовал следующую маршрутизацию Nginx так, что API прослушивает https://server.net/API/:

location /API/ {
 proxy_pass http://localhost:1163/;
 proxy_redirect http://localhost:1163/ $scheme://$host/;
}

. Это работает нормально.Теперь по умолчанию пользовательский интерфейс Swagger прослушивает

http://127.0.0.1:1163/__swagger__/

, что означает, что я могу успешно получить доступ к пользовательскому интерфейсу Swagger при

https://server.net/API/__swagger__/

Issue

Я хочу настроить Nginx таким образом, чтобы пользовательский интерфейс Swagger прослушивал https://server.net/API/documentation/. Я попытался выполнить следующую вложенную конфигурацию Nginx:

location /API/ {
 proxy_pass http://localhost:1163/;
 proxy_redirect http://localhost:1163/ $scheme://$host/;

 location /API/documentation/ {
 proxy_pass http://localhost:1163/__swagger__/;
 proxy_redirect http://localhost:1163/__swagger__/ $scheme://$host/;
 }

}

Теперь при входе вжелаемый URL https://server.net/API/documentation/ в мой браузер, я получаю интерфейс Swagger, однако он возвращает следующий код ошибки:

Swagger_error

Очевидно, чтоневерный URL-адрес swagger был проанализирован во время перенаправления Nginx.Это понятно, учитывая, что в URL должен указываться

https://server.net/API/swagger.json?schemes=https&host=server.net&path=/API/

вместо

http://petstore.swagger.io/v2/swagger.json

Как я могу гарантировать, что правильный URL-адрес анализируется в Swagger UI во время перенаправления Nginx?Всего наилучшего, J.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...