Nginx 将try_文件与uwsgi一起使用
我正在尝试使用nginxNginx 将try_文件与uwsgi一起使用,nginx,flask,react-router,uwsgi,Nginx,Flask,React Router,Uwsgi,我正在尝试使用nginxtry\u files指令和uwsgi\u pass,并且有很多困难 基本上,我想要的是try_files询问uWSGI容器请求URI是否有效,如果无效,则提供index.html文件。我的nginx配置如下: server { listen 80; access_log /tmp/nginx.log; location / { try_files $uri $uri/ /index.html; include uwsgi_
try\u files
指令和uwsgi\u pass
,并且有很多困难
基本上,我想要的是try_files
询问uWSGI容器请求URI是否有效,如果无效,则提供index.html文件。我的nginx配置如下:
server {
listen 80;
access_log /tmp/nginx.log;
location / {
try_files $uri $uri/ /index.html;
include uwsgi_params;
uwsgi_pass 127.0.0.1:5001;
}
}
但是它所做的是检查每个请求的docroot,如果没有,它只会退出并返回index.html文件
我想要的是:
我最终要完成的是HTML5的Pushstate和React路由器。我正在运行一个带有React前端的Flask应用程序。如果用户在
www.myapp.com/preferences/useri
d刷新浏览器,那么我希望nginx将其转发到容器,如果其无效,则返回索引。因此,在与@Chamindu交谈后,我意识到我可能用了错误的方法。我阻止了uWSGI为我的index.html提供服务(即使它可以),而是依靠nginx提供服务
server {
listen 80;
access_log /tmp/nginx.log;
location / {
root /var/www/myapplication/;
try_files $uri $uri/ /index.html;
}
location /api {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5001;
}
}
你不能为uwsgi处理的请求使用单独的路径(使用2个位置/始终返回索引html./api始终传递到uwsgi)@Chamindu我已经尝试过了,但问题是我的index.html文件也由uwsgi提供服务。但也许这就是我问题的根源……我认为最好让nginx提供静态文件,让uwsgi担心动态内容。