我有一些静态的HTML / Javascript / CSS文件,我想在/
投放。
但我也有一个网络服务器,它使用Flask和uwsgi执行我用Python编写的所有API调用
我要做的是让我的所有静态内容都可以作为localhost访问,我的web API可以通过localhost / api访问。
这是我在启用网站的默认网站:
server {
listen 80;
server_name localhost;
root /var/www;
location /api {
location / {
try_files $uri @app;
}
location @app {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
}
}
正如您所看到的,我正在提供位于/var/www
的静态内容,并且我正在尝试将所有请求/api
由uwsgi处理..
目前,当我尝试这个时,uwsgi给了我404,我认为这是因为没有传递uwsgi参数。
答案 0 :(得分:0)
从我可以收集的文档(http://flask.pocoo.org/docs/deploying/uwsgi/)中,您选择的方法仅在应用程序设置为URL根目录时才有效。我从/ api位置删除了try_files,因为我不相信它是不需要的,因为你没有从那里提供静态文件。您可能也不需要重写。
server {
listen 80;
server_name localhost;
root /var/www;
location / {
try_files $uri $uri/ =404
}
location = /api { rewrite ^ /api/; }
location /api {
include uwsgi_params;
uwsgi_param SCRIPT_NAME /api;
uwsgi_modifier1 30;
uwsgi_pass 127.0.0.1:3031;
}