我正在尝试将使用Flask编写的Web应用程序部署到基于Ubuntu的VPS(托管在Digital Ocean上)上。我在部署的最后步骤中遇到了一个问题。
关注this guide我已经完成了Upstart脚本,项目完全失败了。
在sudo start myproject
之后查看日志文件,我找到了一行:Failed to find application 'wsgi'
文件夹结构:
myproject
- venv
- templates
- static
- wsgi.py
- main.py
wsgi.py是:
from main import app
if __name__ == "__main__":
app.run()
最后,Upstart文件目前是:
start on runlevel [2345]
stop on runlevel [!2345]
respawn
setuid myuseraccount
setgid www-data
env PATH=/var/www/myproject/venv/bin
chdir /var/www/myproject
exec gunicorn --workers 2 --bind unix:myproject.sock -m 007 wsgi:app
我已经花了很多时间尝试进行故障排除,但我迷路了。当我在虚拟环境中使用gunicorn --bind 0.0.0.0:8000 wsgi:app
启动项目时,一切正常。
只要它是相关的,nginx配置:
server {
listen 80;
server_name myproject.com www.myproject.com;
location / {
include proxy_params;
proxy_pass http://unix:/var/www/myproject/myproject.sock;
}
答案 0 :(得分:-1)
我刚才遇到了同样的问题。还有另一个问题的答案可以帮助你解决这个问题,因为它确实帮助了我:Gunicorn can't find app when name changed from "application"