gunicron+flask+nginx环境部署

我已经安装好了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;
    }

  }

你可能感兴趣的:(python,nginx)