本文采用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/; }
部分参考于: