• flask运行环境搭建(nginx+gunicorn)


    系统:CentOS7.2(阿里云ESC)
    
    1。python版本,使用的是默认的python2.7(或者先安装python3)
    
    2。安装nginx,yum install -y nginx
    
    3。安装virtualenv,yum install -y python-virtualenv
    
    4。创建虚拟环境,virtualenv venv (venv为虚拟环境名称,可自行加上目录)
    
    5。激活虚拟环境,source venv /bin/activate
    
    6。在虚拟环境中安装gunicorn和flask,(venv) $ pipinstall gunicorn (venv) $ pip install flask
    
    7。在目录/var/www中创建文件flask.py
    
    
    from flask import Flask
     
     
    def create_app():
    	app = Flask(__name__)
    	return app
     
     
    app = create_app()
     
     
    if __name__ == '__main__':
    	app.run()
     
     
    @app.route('/')
    def index():
    	return '<html>Hello world!</html>'
    
    
    8。配置nginx,vim /etc/nginx/nginx.conf    
    头部:user root(ubuntu)
    记得设置权限chmod 777 添加配置 server{ listen 80; server_name 域名;
    root         /root/www/xxxx; location / { proxy_pass http://域名:801; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    } } service nginx restart 9。启动gunicorn(在py目录) gunicorn -w 4 -b 0.0.0.0:801 flask:app

    3.安装supervisor 
    这里退出py3的虚拟环境,直接使用自带的py2.75的来安装

    pip install supervisor
    echo_supervisord_conf > /etc/supervisord.conf #重定向配置文件到制定目录

    (chmod+x 是给以执行权限 绿色 -x未去除权限 灰色)
    chmod +x /etc/supervisord.conf
    改一下最后的配置文件导入

    [include]
    files = /etc/supervisor/*.conf
    在/etc/supervisor创建flask.conf

    [program:wsgi]
    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的虚拟目录下执行
    ---------------------

    查看gunicorn 进程
    pstree -ap|grep gunicorn
    结束主进程
    kill -9 pid

    如果需要gevent可以安装gevent携程

      

    Pycharm生成requirement.txt

    生成requirement文件:pip freeze > requirements.txt

    根据requirement文件安装依赖库:pip install -r requirement.txt

    Supervisor重新加载配置启动新的进程

    一、添加好配置文件后

    二、更新新的配置到supervisord    

    supervisorctl update

    三、重新启动配置中的所有程序

    supervisorctl reload

    四、启动某个进程(program_name=你配置中写的程序名称)

    supervisorctl start program_name

    五、查看正在守候的进程

    supervisorctl

    六、停止某一进程 (program_name=你配置中写的程序名称)

    pervisorctl stop program_name

    七、重启某一进程 (program_name=你配置中写的程序名称)

    supervisorctl restart program_name

    八、停止全部进程

    supervisorctl stop all

    注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。

    https://www.jianshu.com/p/f8735b039c67?from=groupmessage 

    https://www.jianshu.com/p/40caabd91827

    https://blog.csdn.net/qq850482461/article/details/78893710

  • 相关阅读:
    八款前端开发人员更轻松的实用在线工具
    HTML5中的Web Notification桌面通知(右下角提示)
    老司机程序员用到的各种网站整理
    JAVA变量存储
    关于JAVA中的前期绑定 后期绑定(动态绑定)
    i MySQL 查看约束,添加约束,删除约束
    final static
    MySQL alter语句
    MySQL 权限生效
    MySQL 用户权限管理
  • 原文地址:https://www.cnblogs.com/hedianzhan/p/9655183.html
Copyright © 2020-2023  润新知