我想用uWSGI服务器为Flask应用程序设置Nginx。我已将代理设置在unix socket上,如下所示。
最初的Nginx配置:
server {
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/my_app.sock;
}
}
uWSGI配置:
[uwsgi]
socket = /tmp/my_app.sock
virtualenv = /home/user/venv/my_app
chdir = /home/user/apps/my_app
wsgi-file = index.py
callable = app
processes = 4
threads = 2
这样可行但是当我在Nginx配置中更改位置时,我收到了404 Not Found错误。
server {
location /other_location/ {
include uwsgi_params;
uwsgi_pass unix:/tmp/my_app.sock;
}
}
错误可能来自uWSGI服务器(因为对于其他无效URL,错误页面会写入Nginx版本)。我检查了uWSGI日志,但它只包含有关成功发送错误页面的详细信息。
=> generated 233 bytes in 15 msecs (HTTP/1.1 404) 2 headers in 72 bytes
如何配置Nginx和uWSGI以使用非根位置?
是否有必要在应用程序的源代码中设置应用程序路径?
我更喜欢可以使用未经修改的应用程序代码的解决方案。我喜欢尽可能地分离应用程序开发和部署。