阿里云快速部署Flask项目-Ubuntu+Gunicorn+Nginx
gunicorn是一个python Wsgi http server,只支持在Unix系统上运行,来源于Ruby的unicorn项目
gunicorn比uwsgi高并发稳定一点,配置简单方便
一. 安装包
- 安装了Nginx
apt-get install nginx
- 安装Flask
pip install flask
- 安装UWSGI
pip install uwsgi
- 安装了Gunicorn
pip install gunicorn
二. 创建项目
-
在你的
/var/www/
目录下创建一个项目目录myflask -
在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
网友评论