开启flask服务
source .env/bin/activate
python3 app.py
uwsgi部分:
基于在配置好了flask的情况下
1.退出虚拟环境
deactivate
2.下载这个以防止安装失败
yum -y install python36-devel
3.下载uwsgi
pip3 install uwsgi
4.创建uwsgi的软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
5.配置文件
vi uwsgi.ini
-
创建uwsgi.ini的配置文件
[uwsgi] chdir=/www/wwwroot/`工程目录` home=/www/wwwroot/`工程目录`/`虚拟环境目录` moudle=`工程目录` callable=`app` 应用名通常app.py master=true processes=`2` # worker的进程个数 chmod-socket=666 logfile-chomod=644 procname-prefix-spaced=`name` #uwsgi的进程名称前缀,启动后可通过 ps -ef | grep `name`查找到这个进程 py-autoreload=1 # py文件修改,自动加载,也就是设置热启动了 #http=0.0.0.0:8080 # 监听端口,测试时使用 vacuum=true # 退出uwsgi是否清理中间件,包含pid,sock和status文件 socket=%(chdir)/uwsgi/uwsgi.sock #socket文件,配置nginx时候使用 stats=%(chdir)/uwsgi/uwsgi.status #status文件,可以查看uwsgi的运行状态 pidfile=%(chdir)/uwsgi/uwsgi.pid #pid文件,通过该文件可以控制uwsgi的重启和停止 daemonize=%(chdir)/uwsgi/uwsgi.log #设置后台模式,然后将日志输出到uwsgi.log当调试时,可先注释调此内容
7.创建uwsgi中间件文件夹
mkdir uwsgi
cd uwsgi
touch uwsgi.pid
touch uwsgi.sock
touch uwsgi.log
8.在项目目录中执行初始化
uwsgi --ini uwsgi.ini
可忽略
启动flask只需到app.py路径下:
nohup python3 app.py runserver 0.0.0.0:【端口】 > /dev/null 2> /dev/null & 即可
成功配置
1、uwsgi
[uwsgi]
master = true
sock=0.0.0.0:【端口】
chdir=/.../【项目文件夹】
home=/.../.env #虚拟环境绝对路径
wsgi-file = 【启动项目文件名如】app.py
callable=app
processes=2
threads = 10
vacuum=true
buffer-size = 65536
logfile-chmod=644
socket=%(chdir)/uwsgi/uwsgi.sock
daemonize=%(chdir)/uwsgi/uwsgi.log
pidfile=%(chdir)/uwsgi/uwsgi.pid
# 启动uwsgi的用户名和用户组
uid=root
gid=root
procname-prefix-spaced=【uwsgi进程名】
2、nginx
如果是在宝塔面板上安装的nginx,Nginx的配置文件路径为
/www/server/panel/vhost/nginx/www.vpsss.net.conf
server
{
# listen 80 default_server;
listen 443 ssl http2 default_server;
listen 80;
charset utf-8;
server_name 【IP or 域名】;
location / {
charset utf-8;
uwsgi_pass unix:/.../uwsgi.sock; #这里填sock绝对路径
include uwsgi_params;
}
location /static/ {
charset utf-8;
alias /.../static/; # 加载网站静态文件
}
access_log 【记录访问网站访问日志】.log;
error_log 【网站访问错误日志,这个看的居多】.error.log;
}
状态码小常识:
502报错:
网关错误:是指服务器作为网关或代理以满足客户的需求,来访,所请求的url,服务器收到无效相应,从上游服务器访问履行它的要求。
502通常并不意味着上游服务器已关闭,而是上游服务器和网关代理在使用不统一的协议交换数据,在分析浏览器错误时,应完全清除浏览器缓存。