我已经安装好了python3了 首先是要创建虚拟环境
1.创建一个虚拟环境
使用系统自带的pyhton2就可以创建了,virtualenv 制定python3的环境目录
(virtualenv ==15.1.0)centos7 python2.75的版本太久了,需要pip uninstall virtualenv 再安装一次就是新版本了.
virtualenv -p /usr/bin/python3 ENV_CMDB
进入虚拟环境
source ENV_CMDB/bin/activate
退出虚拟环境
deactivate
2.安装gunicron
需要进入到python3的virtualenv 的虚拟环境去进行安装
pip install gunicorn
启动gunicron
gunicorn -w 4 -b 127.0.0.1:5000 manager:app
可以参数启动,也可以使用-c配置文件启动,具体方法搜索一下就OK
-b 绑定端口
-w workers 进程数量
manager:app manager是我项目的启动入口,app是flask的类,
如果启动起来没有问题,就可以用supervisor来进行管理
3.安装supervisor
这里退出py3的虚拟环境,直接使用自带的py2.75的来安装
pip install supervisor
echo_supervisord_conf > /etc/supervisord.conf #重定向配置文件到制定目录
chmod +x /etc/supervisord.conf
改一下最后的配置文件导入
[include]
files = /etc/supervisor/*.conf
在/etc/supervisor创建flask.conf
[program:flask]
directory = /usr/local/flask_cmdb ;命令执行目录
command = /usr/local/ENV_CMDB/bin/python3 /usr/local/ENV_CMDB/bin/gunicorn -w 4 -b 127.0.0.1:5000 manager:app
autostart = true ;默认随supervisord自动启动,默认true
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ;程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
redirect_stderr = true ;重定向错误
stdout_logfile = /var/log/flask_supervisor.log ;这里日志需要手动创建否则无法启动
这里重点的地方是command,运行gunicorn 是在virtualenv的虚拟目录下执行
4.nginx
这里我已经安装过nginx了,直接贴出最简单的server配置吧,就是一个反向代理
server {
listen 8080;
server_name 192.168.1.55; # 这是HOST机器的外部域名,用地址也行
location / {
proxy_pass http://127.0.0.1:5000; # 这里是指向 gunicorn host 的服务地址
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}