nginx优点
·轻量级,同样架设Web服务,比Apache占用更少的内存及资源
·高并发,Nginx处理请求是异步非阻塞的,而Apache则是阻塞性的,在高并发下Nginx能保存低资源消耗高性能 ·高度模块化的设计,编写模块相对简单
·可作为负载均衡服务器,支持7层负载均衡 ·静态处理性能比Apache高3倍以上,但动态处理不足,需要通过后端服务器支持,如Apache
安装:
安装前先关闭Apache服务,以免80端口冲突。
安装支持软件:
[root@www ~]# rpm -q pcre-devel zlib-devel gcc gcc-c++ make
pcre-devel-7.8-7.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
gcc-4.4.7-18.el6.x86_64
gcc-c++-4.4.7-18.el6.x86_64
make-3.81-23.el6.x86_64
上传源码包,开始安装。
[root@www ~]# tar xf nginx-1.6.0.tar.gz -C /usr/src/
[root@www ~]# cd /usr/src/nginx-1.6.0/
[root@www nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
&& make && make install
其中--with-http_stub_status_module模块,为日志统计模块
--with-http_ssl_module模块,为支持ssl模块
查询nginx的启动,停止方法
[root@www nginx-1.6.0]# nginx -h
创建用户和组
[root@www nginx-1.6.0]# useradd -M -s /sbin/nologin nginx
如果不创建nginx用户,启动nginx时会报错,如图:
为主程序nginx创建链接文件
[root@www nginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
Nginx的运行控制方法
手动方法控制Nginx:
nginx -t #检测配置文件语法
执行nginx #主程序启动Nginx
[root@www ~]# nginx #启动nginx服务
[root@www ~]# netstat -anpt |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4651/nginx
[root@www ~]# killall -1 nginx //平滑重启 nginx (reload)
[root@www ~]# killall -s HUP nginx //平滑重启 nginx (reload)
[root@www ~]# killall -3 nginx //正常停止nginx (stop)
[root@www ~]# killall -s QUIT nginx //正常停止nginx (stop)
[root@www ~]# killall -s USR1 nginx //用于nginx的日志切换,也就是重新打开一个日志文件,例如每天要生成一个日志文件时,可以使用这个信号来控制
[root@www ~]# killall -s USR2 nginx //用于平滑升级可执行程序
[root@www ~]# nginx -s reload
[root@www ~]# nginx -s stop
编写nginx服务脚本
[root@www ~]# vim /etc/init.d/nginx
其内容参考nginx官方文档
#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx Server Control Scripts shell
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
if [ -f $PIDF ];then
echo "Nginx is running...Start it is error"
else
$PROG
fi
;;
stop)
if [ -f $PIDF ];then
kill -3 $(cat $PIDF)
rm -f $PIDF
else
echo "Nginx is stopping...Stop it is error"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
if [ -f $PIDF ];then
kill -1 $(cat $PIDF)
else
echo "Nginx is stopping...reload it is error"
fi
;;
status)
if [ -f $PIDF ];then
echo "Nginx is running"
else
echo "Nginx is stopped"
fi
;;
*)
echo "Usage:$0 (start|stop|restart|reload|status)"
exit 1
esac
exit 0
[root@www ~]# chmod +x /etc/init.d/nginx
[root@www ~]# chkconfig --add nginx
[root@www ~]# chkconfig --list nginx nginx
0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@www ~]# /etc/init.d/nginx status
Nginx is stopped
[root@www ~]# /etc/init.d/nginx start
[root@www ~]# /etc/init.d/nginx start
Nginx is running...Start it is error
[root@www ~]# /etc/init.d/nginx restart
[root@www ~]# /etc/init.d/nginx stop
[root@www ~]# /etc/init.d/nginx stop
Nginx is stopping...Stop it is error
[root@www ~]# /etc/init.d/nginx start
[root@www ~]# /etc/init.d/nginx status
Nginx is running