我正拼命地想出为什么我不能使用uWSGI nginx和Ubuntu服务器部署我的flask应用程序的问题。
这是我在 nginx错误日志中的错误:
2019/05/12 09:00:19 [error] 10154#10154: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 24.27.57.18, server: itinareport.tk, request: "POST /login HTTP/1.1", upstream: "uwsgi://unix:/home/pinchrep2/itinarep/itinarep.sock", host: "www.itinareport.tk", referrer: "http://www.itinareport.tk/login"
在使用flask uWSGI和nginx进行所有设置后,我可以输入域名,然后将其带到我的网页(登录页面)。尝试登录时,页面会暂停一段时间,然后我收到 504网关超时
请告诉我应该怎么做。这是我第一次部署应用程序,花了大约一周的时间尝试不同的配置。我应该让您知道我的flask应用程序通过ssh隧道连接到另一个服务器的数据库。不知道这是否也会导致此问题。请尽可能提供帮助,或为我指明正确的方向。
这是我的服务器块配置文件
server{
listen 80;
server_name itinareport.tk www.itinareport.tk;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/pinchrep2/itinarep/itinarep.sock;
}
这是我的服务文件:
[Unit]
Description=uWSGI instance to serve itinarep
After=network.target
[Service]
User=pinchrep2
Group=www-data
WorkingDirectory=/home/pinchrep2/itinarep
Environment="PATH=/home/pinchrep2/itinarep/it_venv/bin"
ExecStart=/home/pinchrep2/itinarep/it_venv/bin/uwsgi --ini itinarep.ini
[Install]
WantedBy=multi-user.target
这是我的 ini文件
[uwsgi]
module = wsgi:app
master = true
processes = 5
socket = itinarep.sock
chmod-socket = 660
vacuum = true
die-on-term=true
答案 0 :(得分:0)
有时,当使用Keras等库部署烧瓶应用程序时,它们在uWSGI中的线程处理会遇到一些问题。
您可以在myproject.ini中进行一些更改以使其起作用:
master = false <-------- this
processes = 1 <--------- and this
cheaper = 0
添加到您的myproject.ini lazy-apps = true
添加到您的myproject.ini 所以现在您的myproject.ini文件可能如下所示:
[uwsgi]
module = wsgi:app
master = false <-------- this
processes = 1 <--------- and this
socket = myproject.sock
chmod-socket = 660
vacuum = true
die-on-term = true
cheaper = 0 <----------- also this, if option 1 is not enough or doesn't work
lazy-apps = true <------ in some case, this might help