Swagger Nginx колба-рестлупс - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь получить интерфейс Swagger от Flask-RESTplus, работающий на сервере, использующем Nginx в качестве прокси.

Swagger подается на / api и работает локально, используя http://localhost:5000/api. Я пытаюсь настроить Nginx в качестве прокси, чтобы я мог перейти на http://ServerIP/api и увидеть интерфейс Swagger.

Я перепробовал множество конфигураций для Nginx и в настоящее время

location /api {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://localhost:5000;
        proxy_redirect off;
        proxy_intercept_errors on;
        proxy_http_version 1.1;
}

Тем не менее, я просто вижу пустую страницу при переходе к http://ServerIP/api. В инструментах разработчика Chrome возникает ошибка:

Uncaught ReferenceError: SwaggerUIBundle is not defined
at window.onload (api:75)

что означает:

<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script type="text/javascript">
    window.onload = function() {
        const ui = window.ui = new SwaggerUIBundle({

Но я могу добраться до (200 ОК, подает файлы javascript) http://ServerIP/swaggerui/swagger-ui-bundle.js http://ServerIP/swaggerui/swagger-ui-standalone-preset.js.

Есть идеи, в чем может быть проблема?

1 Ответ

0 голосов
/ 29 июня 2018

Аналогичный вопрос: Ответ сервера прерывается на полпути через

Nginx должен иметь разрешения на запись во временную папку при отправке больших исходных файлов. Обычно вы увидите это в /var/log/nginx/error.log как

2018/06/28 16:34:48 [crit] ... open() "<tmp folder>/x/y/00000000z" failed (13:
Permission denied) while reading upstream, <request info...>

чтобы исправить это, вы выбрали nginx: nginx (если вы не изменили пользователя вручную), например, sudo chown -R nginx:nginx /var/lib/nginx. если разрешения не меньше 7xx, вам, возможно, придется изменить это, но это не должно быть проблемой.

в качестве альтернативы вы можете установить proxy_buffering off;, но это не рекомендуется, если вы ожидаете, что соединения будут длиннее, чем обычно (скорость или размер).

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