0- 介绍:
使用的服务器:阿里云
使用的系统:centos7.6(centos8坑太多)
使用的用户:root
1- 查看是否安装了python3 ,没有安装的话先看这个进行安装(经测试,即使安装了也需要按照教程去安装,不然后续某些模块会报错):linux安装Python3
ls -l /usr/bin/python*
2- python3安装成功后,安装python虚拟环境和虚拟环境管理,查看这篇文章:virtualenv和virtualenvwrapper的安装和配置
3- 安装nginx服务器,用于做反向代理,查看这篇文章:linux安装nginx
4- 学会使用web服务器uwsgi,查看这篇文章:linux安装uwsgi
5- 下载项目(我的项目放在gitee上)
(1)安装git包管理工具
yum -y install git
(2)从远程仓库上拉取我的项目(你也可以用我的项目先去测试)
git clone https://gitee.com/ma_zipeng/DouBanMovieTop250.git
(3)修改下文件夹里的important.py
cd DouBanMovieTop250
vi important.py
在文件开头加入下列语句(声明用什么执行文件去执行这个文件):
#!/usr/bin/env python3
5- 配置uwsgi
(1)创建虚拟环境,然后安装uwsgi模块
mkvirtualenv flask_douban
// 创建名为flask_douban的虚拟环境
pip install uwsgi -i https://mirrors.aliyun.com/pypi/simple/
pip install flask -i https://mirrors.aliyun.com/pypi/simple/
// 使用镜像源安装uwsgi模块和我的项目需要的flask模块
(2)配置uwsgi的配置文件
cd DouBanMovieTop250 // 进入到文件里面
vi uwsgi.ini // 创建配置文件
===========插入下面内容并保存=============
[uwsgi]
# http服务
http-socket=:8080
# 项目目录(启动文件所在位置)
# chdir= 都在同一个层级,所以不用添加
# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=important.py
# 由于flask存在特殊的机制,可以实例化多个application,需要明确指出,收到请求时,uwsgi应该调用哪个应用实例
# 我的项目中flask的实例名为‘app’
callable = app
# 设置用于uwsgi包解析的内部缓存区大小。默认是4k
buffer-size=65536
# 指定启动的工作进程数
processes=2
# 指定工作进程中的线程数
threads=2
# 启动一个master主进程来管理其他进程
master=True
#不记录request日志,只记录错误日志
disable-logging = true
# 使进程在后台运行,并将日志打到指定的日志文件
daemonize = uwsgi.log
# 保存启动之后主进程的pid(保存在uwsgi.pid文件中),防止运行多余程序
pidfile=uwsgi.pid
# 通过uid和gid去修改用户(移除root权限)
#UID也称为用户ID(UserID),GID也称为用户组ID(Group ID)。操作系统就是利用它两来判断文件的所有者与用户组的。
uid=1000
# 一个请求花费的时间超过了这个harakiri超时时间,那么这个请求都会被丢弃
harakiri = 60
# 为每个工作进程设置请求数的上限
max-requests = 5000
# 如果工作进程结束时间超过了8秒就会被强行结束
reload-mercy = 8
(3)启动项目
uwsgi uwsgi.ini // 启动配置文件
ps ax | grep uwsgi // 查看是否启动
(4)测试是否成成功部署
1-先在阿里云的服务器管理平台上开放刚刚定义的8080端口
2-再在主机浏览器上输入公网IP地址+端口号进行查看
部署成功
6- uwsgi的常用命令介绍
// 根据配文件启动服务器
uwsgi uwsgi.ini
// 查询启动状态
ps ax | grep uwsgi
// 关闭后台运行的uwsgi服务器
// INT后面为uwsgi运行文件的地址(可使用 which uwsgi 进行查询)
killall -s INT /root/.virtualenvs/flask_douban/bin/uwsgi
7- 配置nginx实现反向代理
(1)关闭刚刚运行uwsgi服务器
killall -s INT /root/.virtualenvs/flask_douban/bin/uwsgi
// 查询启动状态
ps ax | grep uwsgi
(2)在http模块添加新的server模块
vi /mine/nginx/conf/nginx.conf
===插入下面内容并保存退出===
#---------------------
server {
listen 9000; # 监听端口
server_name 8.129.9.1; # 需要监听的ip地址
location / {
# 用户访问9000端口时会访问到8080端口上去
# 并且不会暴露实际访问位置
# 用于做反向代理
proxy_pass http://8.129.9.1:8080;
}
}
#---------------------
(3)将nginx服务器和uwsgi服务器一起启动
- 启动nginx服务器
cd /mine/nginx/sbin
./nginx // 启动服务器
ps -ef | grep nginx // 查询启动状态
- 启动uwsgi服务器
workon flask_douban // 进入flask_douban虚拟环境
cd ~/DouBanMovieTop250
uwsgi uwsgi.ini // 根据配置文件启动uwsgi服务器
ps -ax | grep uwsgi // 查看是否启动
8- nginx的常用命令介绍
需要在运行文件的包下面使用命令: cd /mine/nginx/sbin
1.查看版本号
./nginx -v
2.启动nginx
./nginx
3.检测是否打开
ps -ef | grep nginx
4.关闭nginx
./nginx -s stop 或者 ./nginx -s quit(推荐)
ps -ef | grep nginx
5.重新加载nginx(修改配置文件重新加载)
./nginx -s reload
ps -ef | grep nginx
9- 在主机上测试是否部署完成
1-先在云服务器管理平台上将nginx代理的端口9000打开
2-输入公网ip+端口号进行查看
完结撒花~~~
编辑 | sishen
来源 | 前端兔
审核 | @前端兔
关注公众号查看更多前端知识分享~~