CentOS7中配置基于Nginx+Supervisor+Gunicorn的Flask项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7中配置基于Nginx+Supervisor+Gunicorn的Flask项目相关的知识,希望对你有一定的参考价值。
配置nginx
1、安装nginx
yum install nginx
2、安装好后在/etc/nginx/default.d中添加location的配置,并指向8001端口,以后Gunicorn会监听8001端口
location / { proxy_pass http://127.0.0.1:8001 }
3、配置好后重新载入nginx配置
systemctl reload nginx.service
安装Python
CentOS自带Python2.7,如果使用Python3,需要单独安装
参考博客:http://www.cnblogs.com/python-gm/p/7728325.html
安装配置Gunicorn
Gunicorn使用pip install gunicorn安装,注意需要在虚拟环境中使用pip安装,这样才对应虚拟环境中的Python版本。
pip3 install gunicorn
安装配置Supervisor
1、使用yum可以直接安装Supervisor
yum install supervisor
2、安装后,在/etc/supervisord.d中建立配置文件xxx.ini,内容如下
[program:Server] directory = /home/evescn/server command = /usr/local/python34/bin/gunicorn manage:app -b 0.0.0.0:8001 -w=4 --worker-class=gevent #autostart = True user = evescn
3、Server是项目名称,注意command中最好都写全路径,以区别系统环境和项目虚拟环境。完成后启动supervisord,使配置生效
supervisord -c /etc/supervisord.conf
4、常见的gunicorn配置
[program:usercenter] directory = /home/leon/projects/usercenter ; 程序的启动目录 command = gunicorn -c gunicorn.py wsgi:app ; 启动命令,可以看出与手动在命令行启动的命令是一样的 autostart = true ; 在 supervisord 启动的时候也自动启动 startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了 autorestart = true ; 程序异常退出后自动重启 startretries = 3 ; 启动失败自动重试次数,默认是 3 user = leon ; 用哪个用户启动 redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB stdout_logfile_backups = 20 ; stdout 日志文件备份数 ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件) stdout_logfile = /data/logs/usercenter_stdout.log ; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH ; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere
补充:Supervicor使用
1、启动supervisor
supervisord -c /etc/supervisord.conf
2、supervisorctl的使用
supervisorctl status # 查询进程状态 supervisorctl stop node # 关闭 [program:node] 的进程 supervisorctl start node # 启动 [program:node] 的进程 supervisorctl restart node # 重启 [program:node] 的进程 supervisorctl stop all # 关闭所有进程 supervisorctl start all # 启动所有进程 supervisorctl reload # 重新读取配置文件,读取有更新(增加)的配置文件,不会启动新添加的程序 supervisorctl update # 重启配置文件修改过的程序
以上是关于CentOS7中配置基于Nginx+Supervisor+Gunicorn的Flask项目的主要内容,如果未能解决你的问题,请参考以下文章
Linux实战第六篇:CentOS7.3下Nginx虚拟主机配置实战(基于域名)
Linux实战第七篇:CentOS7.3下Nginx虚拟主机配置实战(基于IP)
Linux实战第八篇:CentOS7.3下Nginx虚拟主机配置实战(基于端口)