有两个启动文件
manage.py ,使用 flask-script 插件,最后是 manage.run()
使用命令行:gunicorn manage:app -b localhost:8000
成功启动
run.py ,我不太明白这下面两句是什么意思
from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)
app.run(host='127.0.0.1',port=8000)
但是使用 gunicorn run:app -b localhost:8000 同样启动成功
使用 supervisor 配置文件内容如下
[program:niceblog]
command=/home/seven/.pyenv/versions/daily/bin/gunicorn manage:app -b localhost:8000
diretory=/home/seven/Desktop/niceblog
user=root
autostart=true
autorestart=true
tdout_logfile=/home/seven/Desktop/niceblog/logs/gunicorn_supervisor.log
由于使用的是 pyenv 所以 gunicorn 路径是那样,路径应该没错
command 不管是 manage:app,还是 run:app 都不行
manage:app,logs 提示 No module named 'manage'
run:app,logs 提示 fail find application run
希望有人可以帮忙指点一下,谢谢
2
julyclyde 2018-03-15 10:52:07 +08:00
manage.py 里面肯定有 if __name__吧?要不然按说会和 gunicorn manage:app 方式冲突的
|
4
julyclyde 2018-03-16 11:48:23 +08:00
@sevenQu 你得明白,独立运行的程序,和“被 gunicorn 命令调用的程序”不是一码事
前者自己 run 后者提供一个叫做 app 的变量,供 gunicorn 调用; run 是在 gunicorn 那边的 |
5
jasonqiao36 2018-03-16 16:41:40 +08:00
ProxyFix 能获取到真实的请求 IP,但是有安全问题。http://flask.pocoo.org/docs/0.12/deploying/wsgi-standalone/#deploying-proxy-setups
|