我想打一个瓶+的Nginx + Gunicorn部署。 我有Nginx的建立和运行,我跑gunicorn如在文档中所述:
gunicorn app:app
但是,当我退出服务器gunicorn进程退出的? 什么是确保它保持运行Nginx的用于连接,并重新启动,如果它崩溃了正确的方法是什么?
我想打一个瓶+的Nginx + Gunicorn部署。 我有Nginx的建立和运行,我跑gunicorn如在文档中所述:
gunicorn app:app
但是,当我退出服务器gunicorn进程退出的? 什么是确保它保持运行Nginx的用于连接,并重新启动,如果它崩溃了正确的方法是什么?
我会考虑像监事 。
使用--daemon
在运行gunicorn选项。 例:
gunicorn grand56.wsgi:application --name grand56 --workers 3 --user=root --group=root --bind=127.0.0.1:1001 --daemon
要注意的关键一点是,当你在命令行启动的过程中它是你的终端进程的子(即一个孩子bash
)。 当您注销该服务器在bash
过程被终止-因为都是它的孩子。
你会想用你拥有的任何系统来管理nginx的还(从任何管理gunicorn init.d
或新贵脚本专门的应用程序监视器一样monit的,监事,Bluepill,工头等)
使用--daemon到gunicorn的结合命令。 例如:
gunicorn --bind 0.0.0.0:8001 your_project.wsgi --daemon
注意肖恩。
然而,你可以在这样的飞行运行它:
nohup gunicorn -c config.py </dev/null >/dev/null 2>&1
,这将不再依赖端子连接上。 你可以替换>/dev/null
喜欢的东西>somelogfile
如果你想保存的任何输出。
但对于生产用途,最好把它集成到您使用进程管理任何工具。
试试这个:
nohup gunicorn app:app &
我尝试了systemd选项,它工作得很好,下面的链接有我完整的答案,并拥有所有的步骤,以调用您的应用程序作为一个gunicorn服务。
https://askubuntu.com/questions/930589/running-upstart-script-on-17-04/1010398#1010398
运行拥抱 API这样的。
--daemon是保持过程的背景。
--access,日志文件 ,以保持请求日志
--bind = <IP>:<端口>给予IP将允许从其他系统访问(如果不需要代理)。
gunicorn <pyscirpt_name>:__hug_wsgi__ --name caassist -w 4 --access-logfile /var/logs/gunicorn/gunicorn_access.log --daemon --bind=<ip>:<port>