部署FLASK项目到阿里云服务器
nginx的安装
确保80端口是开放的。(阿里云是配置网络安全组)
安装完成后输入服务器公网ip地址,出现“Welcome to nginx”字样,说明安装成功。
虚拟环境配置
安装虚拟环境管理包
1
| pip install virtualenvwrapper
|
虚拟环境配置
1 2 3 4 5 6 7 8 9 10
| #在根目录创建bashrc文件 vi .bashrc #添加如下内容 export WORKON_HOME=$HOME/.virtualenvs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh #执行命令 source ~/.bashrc #创建虚拟环境,名称为test_env mkdirtualenv -- python=/usr/bin/python3 test_env
|
进入虚拟环境并部署仓库代码
1 2 3 4 5 6 7
| cd .virtualenvs workon test_env cd /srv mkdir test 创建保存仓库的文件夹 git init git remote add origin+仓库网址 git pull origin master 拉取master分支
|
uwsgi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #创建uwsgin文件 touch uwsgi.ini #写入如下内容 [uwsgi]
#项目路径 chdir = /srv/test/ #flask的uwsgi文件 wsgi-file = /srv/test/app.py #回调的app对象 callable = app #python虚拟环境路径 home = /root/.virtualenvs/test_env
#进程相关设置 #主进程 master =true #最大数量的工作进程 processes =10
http = :1426
#开启uwsgi服务 uwsgi --ini uwsgi.ini
|
关于uwsgi的关闭
开启了uwsgi服务后进程会一直存在,关掉终端也是如此。
一个关闭的方法是杀死端口进程
另一个方法是
1 2 3 4 5 6 7 8
| 创建pid文件 touch uwsgi.pid
在uwsgi.ini文件中添加pid文件的路径 pidfile=%(chdir)/uwsgi.pid
执行命令停止服务 uwsgi --stop uwsgi.pid
|
为什么要用uwsgi?
其实在将项目代码部署到服务器上后,直接执行
便可以看到网页效果,但是由于flask自带的服务器只能用来测试,性能并不好,不能用于正式发布,所以还要用uwsgi服务器,更高效稳定的处理静态资源。