美文网首页程序员
云服务器nginx+gunicorn+flask 部署详解

云服务器nginx+gunicorn+flask 部署详解

作者: 开飞机的贝吉塔 | 来源:发表于2017-06-09 15:28 被阅读0次

    需求

    • 使用flask开发了一个小型网站,想要快速部署到云服务器上,查了一些资料发现使用gunicorn+nginx即可满足基本需求。

    环境准备(python-dev、 python-pip、 python-virtualenv、nginx、others.)

    $ sudo apt-get update
    $ sudo apt-get install python-dev python-pip python-virtualenv
    $ sudo apt-get install nginx
    $ sudo apt-get install others...
    

    开始部署

    step1-上传代码(使用scp上传,也可使用IDE快速部署deploy)

    scp -r website  root@你服务器的ip:/home/www/my_flask
    

    step2-切换到虚拟环境、安装gunicorn、配置并测试运行

    切换到虚拟环境

    source /home/www/my_flask/venv/bin/activate
    

    安装gunicorn

    (venv) $ pip install gunicorn
    (venv) $ pip install -r requirements.txt
    

    配置gunicorn config文件

    sudo vi /home/www/gun.conf
    import os
    bind='0.0.0.0:5000'
    workers=4
    backlog=2048
    worker_class="gevent" #这里选择gevent模式
    debug=True
    proc_name='gunicorn.pid'
    pidfile='/var/log/gunicorn/debug.log'
    loglevel=‘debug'
    

    以gunicorn测试运行flask app,这里引导文件为run.py,运行程序为app.run()

    (venv)$ gunicorn -c /home/www/gun.conf run:app
    

    step3-配置nginx并启动

    vi /etc/nginx/sites-available/default

    server {
        listen 80;
        server_name 云服务器IP地址
    
        location / {
            proxy_pass http://0.0.0.0:5000; #这里是flask程序的host和端口
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
      }
    

    启动nginx

    sudo service nginx start
    

    step4—将gnicorn作为服务运行

    sudo vi /etc/init/website.conf

    #config#:::
    description "The website service"
    
    start on runlevel [2345]
    stop on runlevel [!2345]
    
    
    respawn
    setuid root
    setgid www-data
    
    env PATH=/home/www/my_flask/venv/bin/
    chdir /home/www/my_flask
    
    exec gunicorn -c /home/www/gun.conf run:app
    #config over#:::
    

    测试运行

    sudo service website start
    

    结束语

    • 实际部署中碰到了一些问题,�基本可以通过查看对应的日志找到原因。

    相关文章

      网友评论

        本文标题:云服务器nginx+gunicorn+flask 部署详解

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