美文网首页昔我室友屌似卿程序员
Centos+Gunicorn+Nginx+Supervisor

Centos+Gunicorn+Nginx+Supervisor

作者: 李龙杰 | 来源:发表于2016-11-20 09:44 被阅读204次

    Python虚拟环境安装(python3.5)

    1.python3.5有自带的pyvenv,我们可以很轻松的创建一个python3.5的虚拟环境

    pyvenv py35
    

    2.激活虚拟环境的python

    source py35/bin/activate
    

    3.激活成功后,可以在控制台看到变化

    (py35) [limingming@limingming ~]$
    

    安装Flask

    pip install flask
    

    安装Gunicorn

    pip install genicurn
    

    安装Nginx

    yum install nginx
    

    写一个最简单的Flask应用(HelloWorld)

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    
    def hello_world():
    
        return 'Hello World'
    

    使用Gunicorn运行

    nohup gunicorn -w 1 -b 127.0.0.1:8080 /home/limingming/boom/boom:app &
    

    说明:使用nohup的原因是为了让进程在后台运行

    测试:curl 'localhost:8080'

    使用Supervisor管理Gunicorn进程

    pip install supervisor
    

    说明
    系统会提供supervisor只能使用python2.4或之后的版本,但是不能使用python

    所以我们切换回系统自带的python2.7,然后进行安装

    在Supervisor中配置Gunicorn进行

    [program:helloworld]
    
    command=/home/limingming/py35/bin/python3.5 /home/limingming/py3env/bin/gunicorn -w 1 -b 127.0.0.1:8080 /home/limingming/boom/boom:app
    process_name=helloworld
    mask=022
    autorestart=true
    startsecs=1
    stopwaitsecs=1
    exitcodes=0,2
    redirect_stderr=false
    numprocs_start=1
    numprocs=1
    user=limingming
    autostart=true
    autorestart=true
    startretries=10
    stopsignal=KILL
    stopasgroup=true
    killasgroup=true
    stdout_logfile=/home/limingming/log/accesslog/supervisord.helloworld.stdout.log
    stdout_logfile_maxbytes=100MB
    stdout_logfile_backups=2
    stderr_logfile=/home/limingming/log/errorlog/supervisord.helloworld.stderr.log
    stderr_logfile_maxbytes=100MB
    stderr_logfile_backups=2
    

    9.启动Supervisor进程

    supervisord
    

    进入Supervisor的控制台,查看进程信息

    supervisorctl
    

    测试Flask应用是否已经可以访问

    curl 'localhost:8080'

    在Nginx中配置Gunicorn(反向代理)

    只需要在Nginx中配置好一个server

    server {
            listen 80;
            server_name
                //填你的域名
            ;
            location / {
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Scheme $scheme;
                    proxy_redirect off;
                    proxy_pass 127.0.0.1:8080
            }
    }
    

    测试nginx配置文件是否没有错误

    nginx -t
    

    重启nginx进程

    sudo service nginx restart
    

    测试80端口是否可以访问到flask

    curl 'localhost'
    

    相关文章

      网友评论

        本文标题:Centos+Gunicorn+Nginx+Supervisor

        本文链接:https://www.haomeiwen.com/subject/pgoepttx.html