首页服务器CentOS下用chkconfig管理配置nginx

CentOS下用chkconfig管理配置nginx

时间2024-03-21 19:33:03发布访客分类服务器浏览501
导读:这篇文章主要给大家介绍“CentOS下用chkconfig管理配置nginx”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考了解一下,希望这篇“CentOS下用chkconfig管理配...
这篇文章主要给大家介绍“CentOS下用chkconfig管理配置nginx”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考了解一下,希望这篇“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核实处理,我们将尽快回复您,谢谢合作!

nginx

若转载请注明出处: CentOS下用chkconfig管理配置nginx
本文地址: https://pptw.com/jishu/649486.html
Centos7五步搭建Gitlab环境 想用Gitlab管理项目?你先看看这篇文章 CentOS环境下是如何配置Apache httpd并且自定义端口的

游客 回复需填写必要信息