CentOS下用chkconfig管理配置nginx
Nginx 是一个很强大的高性能Web和反向代理服务器。虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便。下面介绍在linux下安装后,如何设置开机自启动。
首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:
vim/etc/init.d/nginx
在脚本中添加如下命令:
#!/bin/sh
#
#nginx-thisscriptstartsandstopsthenginxdaemon
#
#chkconfig:-8515
#description:NGINXisanHTTP(S)server,HTTP(S)reverse\
#proxyandIMAP/POP3proxyserver
#processname:nginx
#config:/etc/nginx/nginx.conf
#config:/etc/sysconfig/nginx
#pidfile:/var/run/nginx.pid
#Sourcefunctionlibrary.
./etc/rc.d/init.d/functions
#Sourcenetworkingconfiguration.
./etc/sysconfig/network
#Checkthatnetworkingisup.
["$NETWORKING"="no"]&
&
exit0
nginx="/usr/sbin/nginx"
prog=$(basename$nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[-f/etc/sysconfig/nginx]&
&
./etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs(){
#makerequireddirectories
user=`$nginx-V2>
&
1|grep"configurearguments:"|sed's/[^*]*--user=\([^]*\).*/\1/g'-`
if[-z"`grep$user/etc/passwd`"];
then
useradd-M-s/bin/nologin$user
fi
options=`$nginx-V2>
&
1|grep'configurearguments:'`
foroptin$options;
do
if[`echo$opt|grep'.*-temp-path'`];
then
value=`echo$opt|cut-d"="-f2`
if[!-d"$value"];
then
#echo"creating"$value
mkdir-p$value&
&
chown-R$user$value
fi
fi
done
}
start(){
[-x$nginx]||exit5
[-f$NGINX_CONF_FILE]||exit6
make_dirs
echo-n$"Starting$prog:"
daemon$nginx-c$NGINX_CONF_FILE
retval=$?
echo
[$retval-eq0]&
&
touch$lockfile
return$retval
}
stop(){
echo-n$"Stopping$prog:"
killproc$prog-QUIT
retval=$?
echo
[$retval-eq0]&
&
rm-f$lockfile
return$retval
}
restart(){
configtest||return$?
stop
sleep1
start
}
reload(){
configtest||return$?
echo-n$"Reloading$prog:"
killproc$nginx-HUP
RETVAL=$?
echo
}
force_reload(){
restart
}
configtest(){
$nginx-t-c$NGINX_CONF_FILE
}
rh_status(){
status$prog
}
rh_status_q(){
rh_status>
/dev/null2>
&
1
}
case"$1"in
start)
rh_status_q&
&
exit0
$1
;
;
stop)
rh_status_q||exit0
$1
;
;
restart|configtest)
$1
;
;
reload)
rh_status_q||exit7
$1
;
;
force-reload)
force_reload
;
;
status)
rh_status
;
;
condrestart|try-restart)
rh_status_q||exit0
;
;
*)
echo$"Usage:$0{
start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}
"
exit2
esac
这个脚本其实也不是我写的,谁写的呢,nginx官方写的,脚本地址:http://wiki.nginx.org/RedHatNginxInitScript,不过要注意,如果你是自定义编译安装的nginx,需要根据您的安装路径修改下面这两项配置:
nginx=”/usr/sbin/nginx” 修改成nginx执行程序的路径。
NGINX_CONF_FILE=”/etc/nginx/nginx.conf” 修改成配置文件的路径。
保存脚本文件后设置文件的执行权限:
chmoda+x/etc/init.d/nginx
然后,就可以通过该脚本对nginx服务进行管理了:
/etc/init.d/nginxstart /etc/init.d/nginxstop
使用chkconfig进行管理
上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便,比如要设置nginx开机启动等。这时可以使用chkconfig来设置。
先将nginx服务加入chkconfig管理列表:
chkconfig--add/etc/init.d/nginx
加完这个之后,就可以使用service对nginx进行启动,重启等操作了。
servicenginxstart servicenginxstop
设置终端模式开机启动:
chkconfignginxon
chkconfig命令的使用方法,就不多数啦,可以自行搜索
另外这里还有一个网友分享的脚本(脚本地址:http://blog.163.com/qsc0624@126/blog/static/140324073201312734548701/):
#!/bin/bash
#nginxStartupscriptfortheNginxHTTPServer
#itisv.0.0.2version.
#chkconfig:-8515
#description:Nginxisahigh-performancewebandproxyserver.
#Ithasalotoffeatures,butit'snotforeveryone.
#processname:nginx
#pidfile:/var/run/nginx.pid
#config:/usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
#Sourcefunctionlibrary.
./etc/rc.d/init.d/functions
#Sourcenetworkingconfiguration.
./etc/sysconfig/network
#Checkthatnetworkingisup.
[${
NETWORKING}
="no"]&
&
exit0
[-x$nginxd]||exit0
#Startnginxdaemonsfunctions.
start(){
if[-e$nginx_pid];
then
echo"nginxalreadyrunning...."
exit1
fi
echo-n$"Starting$prog:"
daemon$nginxd-c${
nginx_config}
RETVAL=$?
echo
[$RETVAL=0]&
&
touch/var/lock/subsys/nginx
return$RETVAL
}
#Stopnginxdaemonsfunctions.
stop(){
echo-n$"Stopping$prog:"
killproc$nginxd
RETVAL=$?
echo
[$RETVAL=0]&
&
rm-f/var/lock/subsys/nginx/var/run/nginx.pid
}
#reloadnginxservicefunctions.
reload(){
echo-n$"Reloading$prog:"
#kill-HUP`cat${
nginx_pid}
`
killproc$nginxd-HUP
RETVAL=$?
echo
}
#Seehowwewerecalled.
case"$1"in
start)
start
;
;
stop)
stop
;
;
reload)
reload
;
;
restart)
stop
start
;
;
status)
status$prog
RETVAL=$?
;
;
*)
echo$"Usage:$prog{
start|stop|restart|reload|status|help}
"
exit1
esac
exit$RETVAL
使用此脚本的时候,也同样需要将配置路径修改成自己的
以上就是关于CentOS下用chkconfig管理配置nginx的介绍,本文内容仅供参考,有需要的朋友可以借鉴了解看看,希望对大家学习或工作,想要了解更多欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下用chkconfig管理配置nginx
本文地址: https://pptw.com/jishu/649486.html
