Boooil's BLOG.

植物病虫害识别系统开发手记Vol_2

2021/03/06 Share

部署FLASK项目到阿里云服务器


nginx的安装

1
apt install 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
sudo fuser -k 1426/tcp

另一个方法是

1
2
3
4
5
6
7
8
创建pid文件
touch uwsgi.pid

在uwsgi.ini文件中添加pid文件的路径
pidfile=%(chdir)/uwsgi.pid

执行命令停止服务
uwsgi --stop uwsgi.pid

为什么要用uwsgi?

其实在将项目代码部署到服务器上后,直接执行

1
python app.py

便可以看到网页效果,但是由于flask自带的服务器只能用来测试,性能并不好,不能用于正式发布,所以还要用uwsgi服务器,更高效稳定的处理静态资源。