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

阿里云快速部署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+Nginx)