NGINX + Flask + UWSGI 静态文件及权限问题

0 投票
1 回答
1250 浏览
提问于 2025-04-18 18:14

我的 NGINX 配置很简单,具体可以参考这个链接:http://flask.pocoo.org/docs/0.10/deploying/uwsgi/#starting-your-app-with-uwsgi

location / { try_files $uri @yourapplication; }
location @yourapplication {
    include uwsgi_params;
    uwsgi_pass unix:/tmp/uwsgi.sock;
}

我知道可以在同一个配置中添加以下内容:

location /static {
   root /var/www;
}

这样一来,NGINX 就会处理 static/ 文件夹里的所有东西。不过,有时候需要把一些文件放在根目录,比如 www.example.com/robots.txtwww.example.com/favicon.ico 等等。针对上面提到的问题,应该怎么解决呢?我刚从 PHP 转过来,对搭建一个好的 Python 平台还不太熟悉。

另外,似乎只有在我手动启动服务器的时候才有效;我用的命令是:uwsgi -s /tmp/uwsgi.sock -w my_app:app --chown-socket=www:www

那么,怎样才能在启动时自动执行这个命令呢?希望这个问题说得够清楚……

1 个回答

1

对于一些单独的文件,你可以在你的nginx配置中直接这样做:

location /**<your-filename-here>** { alias **<absolute-path-to-file>**; }

举个例子:

location /robots.txt { alias /var/www/static/robots.txt; }

撰写回答