我的 Flask 应用通过 uWSGI 运行,并且我使用 TCP 套接字与 NGINX 通信。配置非常简单:
应用程序配置文件
server {
listen 80 default_server;
location / {
uwsgi_pass 127.0.0.1:9000;
include uwsgi_params;
}
}
我在 .ini 中指定了 TCP 套接字:
uwsgi.ini
[uwsgi]
socket = 127.0.0.1:9000
# remove the socket once disconnected
vacuum = true
module = wsgi
callable = app
processes = 4
threads = 2
master = 1
我的模块:
wsgi.py
from app import create_app
app = create_app('config/development.py')
if __name__ == '__main__':
app.run()
127.0.0.1:80/ 仅返回 404 错误(当 uWSGI 未运行时,则返回 NGINX 502 错误)。
我如何让 uWSGI 和 NGINX 相互通信?uWSGI 如何通过 NGINX 为 Flask 应用提供服务?
答案1
我通过更改 Flask 配置来指定服务器来解决了该问题:
配置/开发.py
...
SERVER_NAME = 'applicationlocal'
然后在 NGINX 配置中指定该服务器:
应用程序配置文件
location / {
listen 80;
server_name applicationlocal;
}
我之前曾编辑过 OS X 主机文件,将 127.0.0.1 与“applicationlocal”匹配;现在我可以在“applicationlocal:80/”访问应用程序,但不能访问“127.0.0.1:80/”。