美文网首页
阿里云快速部署Flask项目-Ubuntu+Gunicorn+N

阿里云快速部署Flask项目-Ubuntu+Gunicorn+N

作者: 陈small末 | 来源:发表于2019-01-14 14:02 被阅读0次

    阿里云快速部署Flask项目-Ubuntu+Gunicorn+Nginx

    gunicorn是一个python Wsgi http server,只支持在Unix系统上运行,来源于Ruby的unicorn项目
    gunicorn比uwsgi高并发稳定一点,配置简单方便
    

    一. 安装包

    1. 安装了Nginx apt-get install nginx
    2. 安装Flask pip install flask
    3. 安装UWSGI pip install uwsgi
    4. 安装了Gunicorn pip install gunicorn

    二. 创建项目

    1. 在你的/var/www/目录下创建一个项目目录myflask

    2. 在myflask中创建文件test.py,内容如下

      from flask import Flask
      app = Flask(__name__)
      
      @app.route('/')
      def hello_world():
          return 'Hello, World!'
          
      if __name__ == "__main__":
       app.run()
      

    三. 配置Nginx

    server{
        listen 80;
        server_name 47.75.114.229;
        charset utf-8;
        root /var/www/myflask;
        
        location / {
            proxy_pass http://127.0.0.1:8000;  # 这里是指向gunicorn host的服务地址
            proxy_read_timeout 300;
        }
    }
    

    四. 启动Nginx

    将配置好的nginx.conf文件拖入xshell的/var/www/myflask/下: 
    启动nginx: nginx -c  /var/www/myflask/nginx.conf
    [停止nginx: nginx -s stop]
    

    五. 运行gunicorn

    # 启动
    gunicorn -w 20 -b 0.0.0.0:8000 test:app
    # 关闭
    pstree -ap|grep gunicorn
    kill -9 11111
    

    六. 访问

     http://47.75.114.229/ 
    

    阿里云部署Flask项目

        部署Flask项目和之前部署Django项目基本一致,我们可以使用uwsgi+nginx
        
        我们在之前部署Django项目基础上部署Flask项目
        
        1, 将uwsgi.ini和tpppackage.txt 文件拖入TPP项目工程目录下, 和manage.py 同一个目录
        
        2, 将Flask项目配置
            a, 改成product环境
            b, 修改ajax请求的接口路径为相对路径
            c, 去掉print
            
        3, 然后将TPP项目拖入云服务器(rz)
            
        4, 创建虚拟环境
            mkvirtualenv FlaskTPP
            
        5, 在虚拟环境下安装uwsgi
            pip install uwsgi
        
        6, 安装Flask项目依赖包 (导出虚拟环境中的所有包: pip freeze > tpppackage.txt)
            pip install -r tpppackage.txt
        
        7, 在mysql中创建Flask项目对应的数据库tppdb
            create database tppdb charset=utf8;
            
        8, 迁移
            (python manage.py db init) 已经有migrations文件夹则不使用
            python manage.py db migrate
            python manage.py db upgrade
        
        8, 使用Navicat连接阿里云服务器的mysql,给表加入数据
            
        9, 修改nginx.conf 
            a,将连接uwsgi的端口和uwsgi.ini配置文件相同
                 location / {
                        include /etc/nginx/uwsgi_params;
                        uwsgi_pass localhost:8000;
                         }
            b, 将静态文件路径修改
                 location /static {
                        alias /var/www/TPPPro/App/static/;
                         }
        
        10,uwsgi服务器启动和关闭
            关闭: 
                ps -ef|grep uwsgi : 查看进程
                kill -9 5563 : 关闭进程(5563为进程号)
            开启:
                uwsgi --ini uwsgi.ini
        
        11, nginx服务器启动和关闭
            关闭:nginx -s stop
            运行:nginx -c /root/nginx.conf   
            
            注意:先启动uwsgi,然后再启动nginx
        
        
    

    相关文章

      网友评论

          本文标题:阿里云快速部署Flask项目-Ubuntu+Gunicorn+N

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