Фон
У меня есть удаленный сервер, на котором работает служба 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, однако он возвращает следующий код ошибки:
Очевидно, чтоневерный 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.