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_64zlib-devel-1.2.3-29.el6.x86_64gcc-4.4.7-18.el6.x86_64gcc-c++-4.4.7-18.el6.x86_64make-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 && make && make install其中--with-http_stub_status_module模块,为日志统计模块
创建用户和组
[root@www nginx-1.6.0]# useradd -M -s /sbin/nologin 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
#!/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