我正在尝试将{nginx try_files
指令与uwsgi_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文件。
我想要的是以下内容:
有没有办法'询问'uWSGI来尝试这些文件?
我最终要在这里完成的是使用React Router的HTML5 Pushstate。我正在运行带有React前端的Flask应用程序。如果用户在www.myapp.com/preferences/useri
d刷新浏览器,那么我希望nginx将其转发给容器,如果无效,则返回索引。
答案 0 :(得分:1)
所以,在与@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;
}
}