获取Nginx
Nginx的官方主页: http://nginx.net
其中最新版本为Nginx的开发版本,之前的版本为当前稳定版本。例如最新版本为1.10.X,则当前稳定版本为1.8.X。
http://nginx.org/en/docs/
http://wiki.nginx.org

安装精简笔记:https://www.linuxidc.com/Linux/2012-10/72444.htm

Nginx安装:
方式1. yum安装
配置nginx的yum源,然后用yum install -y nginx来安装

方式2. 源码安装
#1. 停止原有web服务器

#2. 添加普通用户账号来运行nginx:
useradd nginx -M -r -s /sbin/nologin

#2.1 安装依赖包
yum install -y gcc pcre-devel openssl-devel

#3. 解压并安装Nginx:
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar xvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module

make && make install

#3.1 创建软链接文件
ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
#显示nginx命令帮助信息
nginx -h

#4. 启动:
#检测配置文件语法
nginx -t
#启动nginx服务
nginx

查看命令帮助:
/usr/local/nginx/sbin/nginx  -h
-v      查看nginx版本
-V      查看编译参数 
-t      测试默认配置文件
-c      加载非默认位置配置文件
-s     指定操作信号,如restart、reload、stop、quit等。
如nginx   -s  stop停止nginx服务
  1. 查看启动状态:

    ps aux | grep nginx

    root 8416 0.0 0.1 5760 660 ? Ss 23:29 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    nginx 8417 0.0 0.1 5904 992 ? S 23:29 0:00 nginx: worker process

    netstat -ntlp | grep 80

    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8416/nginx.conf

  2. 测试主页是否可以访问:

    links 127.0.0.1 //如果显示Welcome to nginx! 则说明服务正常

练习:在nginx服务器上创建新的测试网页nginx.html,做本地访问测试。
echo 'nginx test page.' > /usr/local/nginx/html/nginx.html
curl 127.0.0.1/nginx.html 显示出'nginx test page.'就说明网站服务正常

  1. 设置开机启动:
    方法一:rc.local
    #echo "/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf" >> /etc/rc.local

    方法二:编写启动脚本并且加入chkconfig(面试题)

    vi /etc/init.d/nginx

    #!/bin/bash

    下面一行代码是chkconfig命令管理脚本必须要写的一行,否则无法用chkconfig命令来管理这个脚本

    #说明:- 99 20中的-号表示在所有的运行级别启动或停用此服务脚本,文件名是/etc/rc.d/rc3.d/S*nginx,99是开机启动的文件编号(S99nginx),20是关机时的软链接文件编号(K20nginx)。

    chkconfig: - 99 20

    description: Oooo this is my nginx startup script

    PROG="/usr/local/nginx/sbin/nginx"
    PIDF="/usr/local/nginx/logs/nginx.pid"
    case "$1" in
    start)
    $PROG
    echo 'nginx service is started.'
    ss -atnlp | grep :80
    ;;
    stop)
    kill -s QUIT $(cat $PIDF)
    echo 'nginx service is stoped.'
    ;;
    restart)
    $0 stop
    $0 start
    echo 'nginx service is restarted.'
    ;;
    reload)
    kill -s HUP $(cat $PIDF)
    echo 'nginx service is reload.'
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|reload}"
    exit 1
    esac
    exit 0


#将nginx启动管理脚本文件设置为chkconfig服务管理脚本,这样就可以用service命令来操作nginx服务的启动、停止、重启。
chmod +x /etc/init.d/nginx
chkconfig nginx on
ll /etc/rc.d/rc3.d/*nginx
chkconfig --list nginx

chkconfig命令说明:
on 允许指定的服务脚本开机自动启动
off 禁止指定的服务脚本开机自动启动
--list 显示指定的服务脚本在哪些运行级别下会自动启动
--add 将指定的脚本文件设置为用service命令能管理的服务脚本
--del 从service管理列表中删除指定的服务脚本

  1. 信号:
    TERM, INT 快速关闭
    QUIT 从容关闭,关闭主进程顺便关闭工作子进程
    HUP 重载 (reload)配置用新的配置开始新的工作进程从容关闭旧的工作进程
    USR1 重新打开日志文件
    USR2 平滑升级可执行程序
    WINCH 从容关闭工作进程,不会立即关闭子进程

client--->旧主进程
usr2 开启新主进程<-----client
winch 监控旧主进程 等待所有客户端断开连接