美文网首页
CentOS云服务器部署Python Flask Virtual

CentOS云服务器部署Python Flask Virtual

作者: stefanJi | 来源:发表于2017-07-01 14:30 被阅读0次

    使用:

    • Python 2.7
    • Flask
    • nginx
    • gunicorn
    easy_install python-dev
    yum install python-pip
    yum install python-virtualenv
    yum install nginx
    mkdir /var/www/myFlask
    sudo chmod 777 /var/www/myFlask
    pip install gunicorn
    pip install Flask
    

    index.py

         1  from flask import Flask
         2  from jinja2 import Environment, PackageLoader
         3  import time
         4  
         5  env = Environment(loader=PackageLoader('index', 'templates'))
         6  app = Flask(__name__)
         7  
         8  
         9  @app.route('/')
        10  def index():
        11      template = env.get_template('index.html')
        12      t = time.time()
        13      f = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        14      return template.render(time=t, format=f)
        15  
        16  
        17  if __name__ == '__main__':
        18      app.run()
    
    

    /etc/nginx/site-avalidable/default

         server{
                listen 80;
                server_name 119.29.158.145;
         
                location / {
               proxy_pass http://127.0.0.1:8080;            
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
            }
        
    

    启动gunicorn:

    gunicorn index:app -w 4 -b 0.0.0.0:8000
    

    访问:<ip address>:8000


    2. 配置super

    1. 安装supervisor
    2. cd /etc
      将supervisor的模板写入一个新的配置,执行:
    echo_supervisord_conf > my_flask_web.conf
    
    1. 编辑新的配置,填写自己的flask web app目录
    [program:flask_apps]
    command=gunicorn index:app -w 4 -b localhost:8000 
    directory=/var/www/flask_web
    autostart=true 
    autorestart=true 
    user=root
    

    这里配置了:
    * 程序名
    * 执行的命令(启动gunicorn)
    * 程序的目录
    * 自动启动
    * 自动重启
    * 启动的用户

    1. 最后执行
     supervisord -c my_flask_web.conf
    

    就已经启动gunicorn进程了


    1. 当kill掉某个进程时,会自动重启进程。
    1. 现在部署都是结合virtualenv或者zc.buildout构建一个独立的Python环境。而不是在服务器上直接pip把依赖安装到全局。

    当使用这些工具时,supervisor里的command命令就需要写上环境的绝对路径。

    [program:flask_apps]
    command=/home/web/flask_apps/venv/bin/gunicorn run:app -w 4 -b localhost:8000 
    directory=/home/web/flask_apps 
    autostart=true 
    autorestart=true 
    user=root
    

    相关文章

      网友评论

          本文标题:CentOS云服务器部署Python Flask Virtual

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