您的位置:首页 > 运维架构 > Nginx

Centos 7 Nginx 服务

2016-01-05 13:38 726 查看


一、RHEL 7的新的特性方法:


1、准备活动

传送门:http://my.oschina.net/liucao/blog/4704582、干货:相信看了准备活动,基本上就会了,这个比起下面那个方法实在是简单多了直接上指令:?
$
sudo
vi
/usr/lib/systemd/system/nginx
.service
#输入下面内容,并保存
[Unit]
Description=nginx
- high performance web server
Documentation=http:
//nginx
.org
/en/docs/
After=network.target
remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=
/run/nginx
.pid
ExecStartPre=
/usr/sbin/nginx
-t
-c
/etc/nginx/nginx
.conf
ExecStart=
/usr/sbin/nginx
-c
/etc/nginx/nginx
.conf
ExecReload=
/bin/kill
-s
HUP $MAINPID
ExecStop=
/bin/kill
-s
QUIT $MAINPID
PrivateTmp=
true
[Install]
WantedBy=multi-user.target
?
#修改权限
$
sudo
chmod
+x
/usr/lib/systemd/system/nginx
.service
/etc/systemd/system/multi-user
.target.wants/
$
sudo
systemctl
enable
nginx.service
#现在可以使用下面的指令来控制nginx啦
$
sudo
systemctl
start nginx.service
$
sudo
systemctl
reload nginx.service
$
sudo
systemctl
restart nginx.service
$
sudo
systemctl
stop nginx.service
#日志
$
journalctl -f -u nginx.service
注意上面的几个路径?
#下面这几个路径是你的nginx安装的目录,务必不要弄错。
PIDFile=
/run/nginx
.pid
ExecStartPre=
/usr/sbin/nginx
-t
-c
/etc/nginx/nginx
.conf
ExecStart=
/usr/sbin/nginx
-c
/etc/nginx/nginx
.conf
上面的方法是不是简单非常多?操作简单了,效率还高了,RedHat/CentOS 果然还是走在了时代的前例,赞一个。


二、普通方法:


1、新建立脚本:

?
输入以下内容(下面这段脚本网上很多,直接拷贝 ):?
#!/bin/sh
#
#
nginx - this script starts and stops the nginx daemin
#
#
chkconfig: - 85 15
#
description:Nginx is an HTTP(S) server, HTTP(S) reverse \
#
proxy and IMAP/POP3 proxy server
#
processname: nginx
#
config:/etc/nginx/nginx.conf
#
pidfile: /run/nginx/nginx.pid
#
Source function library.
.
/etc/rc
.d
/init
.d
/functions
#
Source networking configuration.
.
/etc/sysconfig/network
#
Check that networking is up.
[
"$NETWORKING"
=
"no"
]
&&
exit
0
nginx=
"/usr/sbin/nginx"
prog=$(
basename
$nginx)
NGINX_CONF_FILE=
"/etc/nginx/nginx.conf"
lockfile=
/var/lock/nginx
.lock
start()
{
[
-x $nginx ] ||
exit
5
[
-f $NGINX_CONF_FILE ] ||
exit
6
echo
-n
$
"Starting
$prog: "
daemon
$nginx -c $NGINX_CONF_FILE
retval=$?
echo
[
$retval -
eq
0
] &&
touch
$lockfile
return
$retval
}
stop()
{
echo
-n
$
"Stopping
$prog: "
killproc
$prog -QUIT
retval=$?
echo
[
$retval -
eq
0
] &&
rm
-f
$lockfile
return
$retval
}
restart()
{
configtest
||
return
$?
stop
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/null
2>&1
}
case
"$1"
in
start)
rh_status_q
&&
exit
0
$1
;;
stop)
rh_status_q
||
exit
0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q
||
exit
7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q
||
exit
0
;;
*)
echo
$
"Usage:
$0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit
2
esac
注意几个地方的配置,就是上在nginx中编译时设置的那些目录:
# config: /etc/nginx/nginx.conf# pidfile: /run/nginx/nginx.pidnginx="/usr/sbin/nginx"NGINX_CONF_FILE="/etc/nginx/nginx.conf"lockfile=/var/lock/nginx.lock


2、添加到服务

?
$
chmod
a+x
/etc/init
.d
/nginx
$
chkconfig --add nginx
$
chkconfig --list nginx
nginx
0:off 1:off 2:off 3:off 4:off 5:off 6:off
上面其实就是在/etc/rc.d/rc5.d/目录下创建了一个链接。如下:?
$
cd
/etc/rc
.d
/rc5
.d/
$
ll |
grep
nginx
lrwxrwxrwx.
1 root root 15 6月24 16:14 K15nginx -> ..
/init
.d
/nginx


3、使用

?
$
service nginx start
$
service nginx stop
$
service nginx restart
$
service nginx reload
$
/etc/init
.d
/nginx
start
$
/etc/init
.d
/nginx
stop
$
/etc/init
.d
/nginx
restart
$
/etc/init
.d
/nginx
reload
这样的操作就简单多了。


4、问题:

如果有下面的错误提示,去看看目录是否在该文件,如果实在是存在,且脚本无错,则考虑文件的格式是不是正确,网上有用工具转的比如:doc2unix 。
env: /etc/init.d/nginx: 没有那个文件或目录我的做法是直接复制下内容:?
$
rm
/etc/init
.d
/nginx
$
vi
/etc/init
.d
/nginx
再把内容复制进去,保存,?
$
chmod
a+x
/etc/init
.d
/nginx
记得修改权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: