ubuntu20.04 uwsig 编译安装

一、背景描述
  • python部署环境为python3.6,由于apt-get install uwsgi-plugin-python3,使用python38_plugin.so,python3.8中对应python3.6使用库不兼容,运行不起来
sudo apt-get install uwsgi
sudo apt-get install uwsgi-plugin-python3

在这里插入图片描述

  • 将18.04下python36_plugin.so复制,修改软连接,重启uwsgi也不生效
scp -P 36000 jtserver@172.31.x.x:/home/jtserver/python36_plugin.so .
sudo cp python36_plugin.so /usr/lib/uwsgi/plugins/
cd /etc/alternatives/uwsgi-plugin-python3
sudo mv uwsgi-plugin-python3 uwsgi-plugin-python3.bak # 备份旧文件
sudo ln -sv /usr/lib/uwsgi/plugins/python36_plugin.so /etc/alternatives/uwsgi-plugin-python3
sudo service uwsgi restart
二、获取uwsgi安装文件
  • jtserver@work:~$ wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
    在这里插入图片描述
三、编译安装
  • 解压文件
tar -zxvf uwsgi-latest.tar.gz
cd uwsgi-2.0.20
  • 执行编译,使用对应项目环境python3.6编译
python3.6 uwsgiconfig.py --build
python3 setup.py install`

在这里插入图片描述
在这里插入图片描述

  • 查询目录下文件,已经多出一个uwsgi执行文件
    在这里插入图片描述
四、配置系统环境
sudo mv uwsgi-2.0.20 /usr/local/lib
cd /usr/local/lib/uwsgi-2.0.20
sudo cp uwsgi /usr/local/bin/
sudo ln -sv /usr/local/bin/uwsgi /usr/bin/uwsgi

在这里插入图片描述

五、配置运行环境
  • 将uwsgi挂载到supervisor并启动
sudo vim /etc/supervisor/conf.d/uwsgi_emperor.conf
 
[program:uwsgi_emperor]
directory=/usr/local/bin
command=uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
killasgroup=true
numprocs=1
user=jtserver
redirect_stderr=true
stdout_logfile=/var/log/supervisor/uwsgi_emperor.log
stdout_logfile_backups=15
stdout_logfile_maxbytes=300MB
  • 将python项目配置到uwsgi (若没有vassals则手动新建),配置前请处理好所需目录路径(存放log路径等文件夹新建)
sudo mkdir /etc/uwsgi/vassals
cd /etc/uwsgi/vassals
sudo vim <your-project>.ini


[uwsgi]
socket = /tmp/<your-project>.sock
chdir = /home/jtserver/vhost/<your-project>/
module = manage
callable = app
workers = 2
master = True
vacuum = True
# plugins = python3
enable-threads = True
threads = 20
max-requests = 50000
disable-logging = True
virtualenv = /home/jtserver/virtualenv/<your-project>/
touch-reload = /home/jtserver/vhost/<your-project>/reload
chmod-socket = 666
harakiri = 10    # 如果一个请求花费的时间超过了这个harakiri超时时间10秒,那么这个请求都会被丢弃,并且当前处理这个请求的工作进程会被回收再利用
ignore-write-errors = True

#uwsgi后台运行,日志写到uwsgi.log
daemonize = /home/jtserver/log/<your-project>/uwsgi.log
六、参考
  • http://t.zoukankan.com/pengpengdeyuan-p-14663112.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值