首页 > 解决方案 > Flask+nginx+uwsgi:如果flask没有路由,则仅使用nginx提供url

问题描述

服务器的 nginx 配置(主要的 nginx 是 debian 9 上的默认配置):

server {
    listen 80;

    server_name subdomain.domain.com;
    include  /etc/nginx/mime.types; 
    location /galleries {
        autoindex on;
        alias /srv/galleries/;
    }
    location / {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/scraper.sock;
    }
}

uwsgi 配置:

[uwsgi]
module = wsgi:app

master = true
processes = 5

socket = /tmp/scraper.sock
chmod-socket = 777
uid = www-data
gid = www-data
vacuum = true

die-on-term = true
plugins = python3
py-autoreload = 1

如果我尝试为 /galleries/whatever 创建一条路线,例如:

@app.route("/galleries/whatever")
def test():
    return "Hello"

我只会通过 nginx 而不是通过烧瓶查看 /galleries/whatever 中的索引文件。

如果flask返回404,我有没有办法强制nginx只处理请求?或者,有没有更好的方法让我在提供文件的同时仍然可以在这些 url 下使用它们?请记住 /galleries 文件夹非常大,并且是由另一个程序生成的。

我使用“uwsgi --ini server.ini”运行服务器,仅此而已。

标签: pythonnginxflaskuwsgi

解决方案


推荐阅读