Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,django是python应用最普遍的Web框架, 许多成功的网站和APP都基于Django。uwsgi是nginx python django的主要中间件,但是因为uwsgi没有提供方便的脚本供启动和停止。下面为uwsgi服务脚本编写方法,将脚本注册为Linux服务,可以开机自启,通过service start|stop|restart,启动、停止、重启项目。uwsgi参考网址https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/Nginx.html。
1.在django项目根目录中创建uwsgi.ini
[uwsgi]
socket=127.0.0.1:8997
#项目目录
chdir=/home/wwwroot/tools
module=tools.wsgi
master=true
processes=2
daemonize=tools.log
vacuum=true
#设置pid文件可以使用uwsgi --stop pidfile
pidfile=uwsgi.pid
用uwsgi --ini uwsgi.ini 启动uwsgi服务,通过netstat -an|grep 8997可以看到端口已开启。
2.创建项目服务脚本
#!/bin/bash
### BEGIN INIT INFO
# Provides: VHSAL.COM
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: UWSGI tool
# Description: Start or stop the UWSGI server
### END INIT INFO
NAME="uwsgi"
INI_FILE="uwsgi.ini"
PID_FILE="uwsgi.pid"
FOLDER="/home/wwwroot/tools"
UWSGI_BIN="/usr/local/bin/uwsgi"
Info_font_prefix="\033[32m" && Error_font_prefix="\033[31m" && Info_background_prefix="\033[42;37m" && Error_background_prefix="\033[41;37m" && Font_suffix="\033[0m"
RETVAL=0
check_running(){
PID=`ps -ef |grep "${NAME}" |grep -v "grep" |grep -v "init.d" |grep -v "service" |grep "${INI_FILE}"`
if [[ ! -z ${PID} ]]; then
return 0
else
return 1
fi
}
do_start(){
check_running
if [[ $? -eq 0 ]]; then
echo -e "${Info_font_prefix}[信息]${Font_suffix} $NAME (PID ${PID}) 正在运行..." && exit 0
else
cd ${FOLDER}
$UWSGI_BIN --ini $INI_FILE
sleep 2s
check_running
if [[ $? -eq 0 ]]; then
echo -e "${Info_font_prefix}[信息]${Font_suffix} $NAME 启动成功 !"
else
echo -e "${Error_font_prefix}[错误]${Font_suffix} $NAME 启动失败 !"
fi
fi
}
do_stop(){
check_running
if [[ $? -eq 0 ]]; then
cd ${FOLDER}
$UWSGI_BIN --stop $PID_FILE
sleep 3s
check_running
RETVAL=$?
if [[ $RETVAL -eq 0 ]]; then
echo -e "${Error_font_prefix}[错误]${Font_suffix}$NAME 停止失败 !"
else
echo -e "${Info_font_prefix}[信息]${Font_suffix} $NAME 停止成功 !"
fi
else
echo -e "${Info_font_prefix}[信息]${Font_suffix} $NAME 未运行 !"
RETVAL=1
fi
}
do_status(){
check_running
if [[ $? -eq 0 ]]; then
echo -e "${Info_font_prefix}[信息]${Font_suffix} $NAME (PID ${PID}) 正在运行..."
else
echo -e "${Info_font_prefix}[信息]${Font_suffix} $NAME 未运行 !"
RETVAL=1
fi
}
do_restart(){
do_stop
do_start
}
case "$1" in
start|stop|restart|status)
do_$1
;;
*)
echo "使用方法: $0 { start | stop | restart | status }"
RETVAL=1
;;
esac
exit $RETVAL
在/etc/init.d目录中创建以上服务脚本,通过service uwsgi-tools start启动服务,service uwsgi-tools stop 停止服务。下载地址:
3.加入开机自启动
#将服务设置开机自启。
sudo update-rc.d uwsgi-tools defaults
//设置服务开机自启(默认条件)
# update-rc.d -f uwsgi-tools remove //设置服务删除开机自
你好!.
我可以在哪里免费下载XEvil在您的网站?
从你的支持得到的信息。 XEvil确实是解决验证码的最佳方案,但我需要最新版本。
多謝。.