一、安装uWsgi
1、yum安装
yum -y install uwsgi
yum -y install uwsgi-plugin-python
如果找不到安装包解决如下:
yum -y install epel-release
安装完之后清除缓存
yum clean all
uWSGI配置文件如下
[uwsgi]
uid = uwsgi
gid = uwsgi
pidfile = /run/uwsgi/uwsgi.pid
emperor = /etc/uwsgi.d
stats = /run/uwsgi/stats.sock
chmod-socket = 666
emperor-tyrant = true
cap = setgid,setuid
;配置这个可以在浏览器直接访问
;http-socket = :8080
plugin = python
;用nginx做反向代理的话必须这样配置否则报错
socket = :8080
wsgi-file=/var/www/python/index.py
py-autoreload = 1
;master = true
;processes = 4
;只要指定文件夹发生改动就重启实例
;touch-reload = /var/www/python
;使进程在后台运行,并将日志打到指定的日志文件或者udp服务器
daemonize = /var/log/uwsgi/%n_daemonize.log
使用yum安装可以使用 systemctl start uwsgi 启动,当然停止和重启也可以
2、编译安装
yum install -y pcre pcre-devel pcre-stati
yum -y install uwsgi-plugin-python
wget https://projects.unbit.it/downloads/uwsgi-2.0.15.tar.gz
解压安装
python uwsgiconfig.py --build
如果有错误根据错误提示解决
这样安装是安装在源码目录中的并且没有 uwsgi.ini文件需要手动添加
3、配置多个站点
思路:使用 uwsgi /etc/uwsgi.ini 这样的方式启动多个线程
shell脚本如下
#!/bin/bash
case $1 in
start)
ini_file=`ls /etc/uwsgi.d/`
for file in ${ini_file}
do
uwsgi /etc/uwsgi.d/${file}
done
if [ $? == 0 ]
then
echo "uwsgi start successed!"
fi
;;
stop)
ini_file=`ls /run/uwsgi/ |grep '.d'`
for file in ${ini_file}
do
uwsgi --stop /run/uwsgi/${file}
done
if [ $? == 0 ]
then
echo "uwsgi stop successed!"
fi
;;
restart)
${0} stop
${0} start
;;
*)
echo "useage stop|start|restart"
;;
esac
需要注意的是uwsgi配置文件必须要都在/etc/uwsgi.d/文件夹下,另外pid文件都在/run/uwsgi/文件夹下
注意:
linux下本身自带的python是2.7.5版本,升级到3.5.2的话,要用pip3 install uwsgi来进行安装 uwsgi 并且在配置文件中不能使用plugin=python这句
通过pip3安装的uwsgi开机启动的话会不要把pid文件放在/run 或者是 /var/run目录下,在重启的时候会被删掉,可以自定义文件的位置