python:使用 宝塔+supervisor+uwsgi+nginx在服务器跑flask网站

1 篇文章 0 订阅
1 篇文章 0 订阅

之前做网站用的python后端,学习部署的时候花了好长时间
第一次部署也是出现了好多奇奇怪怪的问题,现在整理一下

创建python虚拟环境

  • 安装虚拟环境的第三方包 virtualenv
    pip install virtualenv
    或者使用清华源安装
    pip install virtualenv -i https://pypi.python.org/simple/
  • 创建虚拟环境
    cd到网站根目录,执行virtualenv venv在当前目录下创建名为venv的虚拟环境(python的版本是安装virtualenv时使用的版本)
    参数 -p 指定python版本创建虚拟环境:virtualenv -p /usr/local/bin/python2.7 venv
    参数 --system-site-packages 指定创建虚拟环境时继承系统三方库:virtualenv --system-site-packages venv

配置uwsgi

我安装的是python版本的, 用pip3 install uwsgi安装
然后在根目录创建一个uwsgi.ini文件,也有其他格式的,详见官网文档

以下是我的配置文件:

[uwsgi]
# ;和#为注释
socket = 127.0.0.1:8008	# 与nginx交流的端口
chdir = /www/wwwroot/blog	# 网站根目录
wsgi-file =  /www/wwwroot/blog/app.py	# 脚本文件,flask的启动文件,要带上后缀
processes = 10	# 进程数
threads = 30	# 线程数
stats = 127.0.0.1:9090	# 检查状态的端口
callable = app
; daemonize = /www/wwwroot/blog/uwsgi.log	# 指的后台启动 日志输出的地方,先注释掉
pidfile = /www/wwwroot/blog/uwsgi.pid	# 保存主进程的进程号
virtualenv = /www/wwwroot/blog/venv	# 虚拟环境环境路径
plugins = python3	# 使用的python版本
buffer-size = 32768	# 缓冲大小,不设置也可以

现在打开终端,cd到网站根目录,执行uwsgi uwsgi.ini,一般情况下不报错就是成功了……
毕竟跑在本地的没地方看只有一个黑黢黢终端

如果没有注释掉daemonize ,会看不见输入日志,关闭终端也会继续运行,可使用pkill -f uwsgi -9关闭

配置nginx

怎么添加站点就不说了,把目录绑定到网站根目录就好了

现在修改网站配置文件,添加或修改如下代码:

location / {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
        include      uwsgi_params;
        uwsgi_pass   127.0.0.1:8008;	# uwsgi.ini中的 socket
    }

现在访问绑定的域名或者ip,会发现是502,再在网站根目录执行 uwsgi uwsgi.ini,打开网站,会看到自己的网站🎉🎉

配置supervisor

我是在宝塔的软件商店安装的,安装好之后就可以添加守护进程

名称用户运行目录启动命令进程数
随便填
要具有辨识度但是只能英文
root
用户
网站
根目录
uwsgi /(必须完整路径)/uesgi.ini
看情况

我每次启动在日志查看都看不见日志,是因为所有日志都分到了err日志,在子配置文件中将stderr_logfile*.err.log改成*.out.log就好了

现在启动可能会出现

!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!
no request plugin is loaded, you will not be able to manage requests.
you may need to install the package for your language of choice, or simply load
it with --plugin.
!!!!!!!!!!! END OF WARNING !!!!!!!!!!
  • Python2:
    安装:sudo apt-get install uwsgi-plugin-python
    uwsgi.ini文件中plugins = python
  • Python3
    安装:sudo apt-get install uwsgi-plugin-python3
    uwsgi.ini文件中plugins = python3

现在就完成了对flask网站的所有配置,可以用supervisor对网站进行管理

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ByXian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值