文章目录
Flask项目部署
项目说明
对用户上传的图片进行内容初步审核,根据图片识别的内容,判断是否符合要求
环境搭建
- Ubuntu
- nginx
- python3.6
- flask
- uwsgi
代码地址
部署过程
系统环境
ubuntu18.04 带p2和p3,所以在安装的时候需要注意,不要修改系统的版本
安装python3.6
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
安装pip3
sudo apt install python3-pip
pip3 --version
sudo alias pip='pip3'
安装虚拟环境
sudo pip install virtualenv
安装nginx
sudo apt-get install nginx
创建虚拟环境
需要在上传的项目文件目录下操作
virtualenv venv # 创建虚拟环境
ls venv/bin/ # 查看虚拟环境所属的python版本
# 有看到3.6出现,说明刚创建的venv虚拟环境是依赖于python3.6的
# 如果不是你想要的python版本的虚拟环境,你可以按如下做:
virtualenv -p /usr/bin/python3.6 venv
# python3.6可改为其它python版本 venv是虚拟环境的名字
# 知道能确定这个venv是自己项目需要的python版本的虚拟环境这一步才算成功哦,不然后面都是白费
安装uwsgi包
进入虚拟环境,这是下面的基础
source venv/bin/activate
(venv)
#安装依赖
sudo apt-get install libpython3.6-dev
pip3 install uwsgi
#检查版本
uwsgi --python-version
#退出虚拟环境
deactivate
安装依赖包
pip install -r requirements.txt
uwsgi
touch config.ini
vim config.ini
uwsgi config.ini
killall -9 uwsgi # kill正在运行的uwsgi程序
配置文件
[uwsgi]
# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8001 # 可以使用其他端口
# 指向网站目录
chdir = /var/www/team_plus
# python 启动程序文件
wsgi-file = manage.py
# python 程序内用以启动的 application 变量名
callable = app
# 处理器数
processes = 4
# 线程数
threads = 2
#状态检测地址
stats = 127.0.0.1:5000 # 使用flask项目默认的端口,可以换但必须是flask运行时使用的端口
配置Nginx
server {
listen 8001; # nginx监听的端口(默认为80,可以改为其它端口号,也允许不同的nginx server监听不同的端口)
server_name 云主机的公网IP地址;
#charset koi8-r;
#access_log logs/host.access.log main;
root /var/www/team_plus/app/static; # 改为自己的flask项目中的静态文件所在的目录路径
index html/index.html; # 改为自己的首页在静态目录中的路径
location / { # location是用以指定请求要转发到的目标服务器运行的地址
#try_files $uri $uri/ =404;
include uwsgi_params; # 是uwsgi默认的配置参数名
uwsgi_pass 127.0.0.1:8000; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
uwsgi_param UWSGI_PYHOME /var/www/team_plus/venv; # 指向虚拟环境目录
uwsgi_param UWSGI_CHDIR /var/www/team_plus; # 指向网站根目录
uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
}
}
nginx命令
sudo service nginx restart #重启