服务器部署flask项目(python3+uwsgi+nginx)

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
来源 | 前端兔
审核 | @前端兔

关注公众号查看更多前端知识分享~~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值