采用flask+uwsgi+nginx架构将flask应用程序部署在腾讯云
最近一星期加班为学校做了一个教师发展中心平台,在此总结一下部署经验
环境:Centos7.0 python2.7.5
1.安装nginx
命令行输入指令:sudo yum install nginx
2.安装pip
1. sudo yum –y install epel-release
2. sudo yum –y install python-pip
3.安装virtualenv
pip install virtualenv
在应用程序目录创建虚拟环境 virtualenv venv
4.激活虚拟环境
在目录下home/magicroc/flasky
virtualenv venv
source /bin/activate
5.虚拟环境下安装uwsgi服务器
pip install uwsgi (需安装三个库 )
1.sudo yum install libxml2
2.sudo yum install gcc
3.sudo yum install python-devel
6.安装flask应用程序依赖包
因为pip安装时速度太慢,所以决定更改为pip国内源
对指定包对安装临时使用豆瓣源
pip install flask_sqlalchemy –i http://pypi.douban.com/simple
永久更新源办法 修改配置文件
在主目录下创建.pip文件夹
mkdir ~/.pip
然后在该目录下创建pip.conf文件
vi pip.conf
写入以下内容
[global]
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple
7.修改nginx配置文件(最后不要直接修改nginx.conf默认文件,笔者这里是直接修改默认配置文件,不过不推荐这种行为)
vi etc/nginx/nginx.conf
server {
listen 80;
server_name XXX.XXX.XXX; #公网地址
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
uwsgi_param UWSGI_PYHOME /home/magicroc/flasky/venv; # 指向虚拟环境目录
uwsgi_param UWSGI_CHDIR /home/magicroc/flasky; # 指向网站根目录
uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
}
}
启动nginx:命令行输入nginx
关闭nginx:ps -ef|grep nginx
查看nginx 线程ID
kill -QUIT 线程ID
8.修改uwsgi配置文件
进入flask应用程序目录 vi config.ini
[uwsgi]
# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8001
# 指向网站目录
chdir = /home/magicroc/flasky
# python 启动程序文件
wsgi-file = manage.py
# python 程序内用以启动的 application 变量名
callable = app
# 处理器数
processes = 4
# 线程数
threads = 2
#状态检测地址
stats = 127.0.0.1:9191
uwsgi 启动 :虚拟环境下uwsgi config.ini
uwsgi 关闭:虚拟环境下killall -9 uwsgi