本文采用CentOS7下用Nginx和uwsgi部署的方式
一、安装Python环境依赖
1、在本地的虚拟环境中,项目根目录下,执行命令收集所有包
pip freeze > plist.txt
2、上传项目到服务器的目录
scp 项目名 root@39.107.86.xxx:~
3、服务器安装Python虚拟环境
安装并创建虚拟环境猛击这里,如果已有则跳过此步
mkvirtualenv [虚拟环境名称] # 创建虚拟环境
workon [虚拟环境名称] # 切换到虚拟环境中
4、安装Python包
pip install -r plist.txt
二、uwsgi配置
uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器
uWSGI代码完全用C编写
1、安装uwsgi
pip3 install uwsgi
2、配置uWSGI,在项目中新建文件uwsgi.ini,编写如下配置
[uwsgi]
socket = 127.0.0.1:5000
; 启动程序时所使用的地址和端口,通常在本地运行flask项目,地址和端口是127.0.0.1:5000,
chdir = /root/NewsProject/app
; 项目的目录
wsgi-file = run.py
;flask程序的启动文件,通常在本地是通过运行
callable = app
;程序内启用的application变量名
processes = 4
;开启进程数
threads = 2
;每个进程开启线程数
stats = 127.0.0.1:9191
;获取uwsgi统计信息的服务地址
- 启动:uwsgi --ini uwsgi.ini
- 停止:uwsgi --stop uwsgi.pid
- 重启:uwsgi --reload uwsgi.pid
三、nginx的配置
1、安装:猛击这里
2、修改nginx的配置文件
vim /etc/nginx/conf.d/default.conf
3、配置新的location项,指向uwsgi的ip与端口
location /toutiao/ {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
uwsgi_param UWSGI_PYHOME /root/.virtualenvs/flask-news;
uwsgi_param UWSGI_CHDIR /root/NewsProject;
uwsgi_param UWSGI_SCRIPT manage:app;
}
4、配置静态文件位置
location /static/ {
alias /var/www/flask-news/static/;
}
部分参考于:这里