【问题标题】:Error displaying Swagger UI of flask-restx in Deployment using uwsgi and nginx使用 uwsgi 和 nginx 在部署中显示 flask-restx 的 Swagger UI 时出错
【发布时间】:2022-12-15 11:10:10
【问题描述】:

我已经使用 flask-restx 实现了一个带有 swagger-ui 的 flask rest 服务器。 在没有 nginx 的情况下使用命令运行服务器时,我可以让 swagger-ui 工作

flask run --host=0.0.0.0

或者

uwsgi --ini app.ini

我的app.ini

[uwsgi]
module = wsgi:app

master = true
processes = 2

socket = /tmp/myproj.sock
chmod-socket = 666
vacuum = true

die-on-term = true

====================

但是,使用 nginx,尽管我的 REST API 可以正常工作,但我无法获得 swagger-UI。 我在浏览器上收到的错误消息:

我的nginx配置在/etc/nginx/sites-available/default

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    
    server_name _;

    location /api {     
        include uwsgi_params;
        uwsgi_pass unix:/tmp/myproj.sock;
    }
}

知道如何配置 nginx 以便可以加载 swagger-UI 吗? 谢谢你。

【问题讨论】:

  • 你找到解决办法了吗?我遇到了完全相同的问题。
  • 嗨@Phipsen,我已经在下面发布了我的解决方案。希望能帮助到你

标签: nginx flask swagger uwsgi flask-restx


【解决方案1】:

更新

我设法通过在 nginx 配置中添加 /swaggerui 使其工作。

示例代码:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ /index.html;
    }
  
  location /api {
    include uwsgi_params;
    uwsgi_pass unix:/tmp/myproj.sock;
  }

  location /swaggerui {
    include uwsgi_params;
    uwsgi_pass unix:/tmp/myproj.sock;
  }

}

【讨论】:

    猜你喜欢
    • 2014-06-04
    • 2013-07-16
    • 2021-10-30
    • 2023-02-09
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多