nginx--提供一键安装脚本

nginx特点

  • 基于进程池实现的fastcgi
  • 单一进程即可实现处理上千的连接
  • 易于扩展的插件系统

安装篇

*下载源码

curl   -O http://nginx.org/download/nginx-1.8.0.tar.gz

*创建nginx用户

useradd -s /sbin/nologin -d /usr/local/nginx nginx

*安装必要的软件依赖

yum install pcre pcre-devel  zlib zlib-devel  openssl openssl-devel

*编译前的配置
*查看开关变量
./configure --help
这个地方建议保存一个shell脚本便于日后编译

[root@3maoer nginx-1.9.6]# cat install.sh 
#!/bin/sh
        ./configure      --prefix=/usr/local/nginx-1.9.6        #一般指定这个,也便于升级
        make
        make install

        ln  -s  /usr/local/nginx-1.9.6  /usr/local/nginx        #便于用最新的版本
[root@3maoer nginx-1.9.6]# 

*控制nginx进程
nginx通过nginx发送不同的信号来实现管理进程

/usr/local/nginx/sbin/nginx -s [stop|quit|reopen|reload]   停止|退出|重新打开日志|重新载入配置文件

*新配置加入的流程
1.创建配置文件
2.测试配置文件有效性 /usr/local/nginx/sbin/nginx -t -c 配置文件# 显示配置是否有效
3.覆盖默认配置文件
4.nginx -s reload 重新载入新的配置

*显示configure配置选项
/usr/local/nginx/sbin/nginx -V

*指定额外的命令
./nginx -s 'timer_resolution 200ms'

*ngin加入系统服务

cat >/etc/init.d/nginx<<'EOF'
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run

#注意上面2 3行不能少
        set  -e
        PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
        DESC="nginx daemon"
        NAME="nginx"
        DAEMON=/usr/local/nginx/sbin/$NAME
        SCRIPTNAME=/etc/init.d/$NAME

        test -x $DAEMON || exit 0

        d_start() {

                $DAEMON  || echo -n " already running"
        }

        d_stop() {
                $DAEMON -s quit || echo -n " not running"

        }

        d_reload() {

                $DAEMON -s reload || echo -n " could not reload"
        }

        d_status() {

                ps  -ef|grep nginx|grep  -v grep
        }
        case "$1" in 
        start)
                echo  -n "starting $DESC :$NAME"
                d_start
                echo  "."
        ;;
        stop)
                echo -n "stopping $DESC :$NAME"
                d_stop
                echo "."
        ;;
        reload)
                echo  -n "reloading $DESC :$NAME configuration...."
                d_reload
                echo "reloaded."
        ;;
        restart)
                echo  -n "restart $DESC :$NAME "
                d_stop
                sleep 2
                d_start
                echo "."
        ;;
      status)
                d_status
        ;;
        *)
                echo "$SCRIPTNAME {start|stop|restart|reload}"  >&2
                exit 3
        esac
        exit 0
EOF
chmod +x /etc/init.d/nginx
chkconfig --add nginx

nginx配置语法

*注释
所有以#开头的行都是注释
*指定worker进程运行用户以及运行组
user user [group]
nginx可以以指定的用户组运行
文件包含
include xxxconf
作用:将指定配置包含到当前位置,在文件名中可以包含通配符:

格式良好的配置应该提供下面的几个配置

名称 描述
nginx.conf 应用程序的基本配置文件
mime.types 一个文件扩展列表文件,他们与MIME类型关联
fastcgi.conf 与FastCGI相关的配置文件
proxy.conf Proxy相关的配置
sites.conf 配置Nginx提供的网站,包括虚拟机,一般每一个域建立一个单独的文件
  • 命令
    每一条命令必须写上”;“表示一条命令
  • 命令快
    格式:block_name { .... }
    作用:便于区分全局,标识,继承快命令
    不同的区块有着不同命令
    如:
http {
    server {
       listen 80;
       server_name 3maoer.com;
       location ^~/admin/ {
   
            index index.php;
       }
   }
}
  • 正则表达式
    nginx的配置location rewrite 命令支持复杂的正则表达式
  • 指令值单位
    *k/K 千字节
    *m/M 兆字节
    *ms:Milliseconds 毫秒
    *s:Seconds 秒
    *m:Minutes 分钟
    *h:Hours 小时
    *d:Days 天
    *w:Weeks 星期
    *M:Months (30天)月
    *y:Years (365天)年

时间默认不写是秒

  • 变量
    nginx内置了一些变量

    http模块
    $nginx_version

  • 模块的构成
    基本模块

    • 核心模块

daemon
值:on/off
默认:on
语法:daemon <on|off>
作用:
启用或者禁用守护进程模式,如果禁用则程序不能后台运行只能前台运行
debug_points
值:stop或者abort
默认:none

  • 事件模块
  • 配置模块

安装脚本

#!/bin/sh

############################################################################
# install-nginx.sh                                                         #
#                                                                          #
#功能: 一键安装nginx程序                                                   #
#描述: 将要安装的版本赋值给PROGNAME,如安装1.8版本,PROGNAME="nginx-1.8.0"  #
#创建: luomg                                                               #
#时间: 2016-01-19 23:00
############################################################################
        PROGNAME="nginx-1.8.0"
        BASEDIR="/lnmp"


        mkdir  -p  ${BASEDIR}

        [ -f ${PROGNAME}.tar.gz ] || 
        curl   -O http://nginx.org/download/${PROGNAME}.tar.gz

        useradd -s /sbin/nologin -d /usr/local/nginx nginx

        yum  -y  install pcre pcre-devel  zlib zlib-devel  openssl openssl-devel

        tar   -zxvf ${PROGNAME}.tar.gz 

        [ -d ${PROGNAME} ]  &&  echo "已经解压"



        cd  ${PROGNAME} 


        ./configure      --prefix=${BASEDIR}/${PROGNAME} 


        make
        make install

        ln  -s  ${BASEDIR}/${PROGNAME}  /usr/local/nginx 

        cat >/etc/init.d/nginx<<'EOF'
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run

#注意上面2 3行不能少
        set  -e
        PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
        DESC="nginx daemon"
        NAME="nginx"
        DAEMON=/usr/local/nginx/sbin/$NAME
        SCRIPTNAME=/etc/init.d/$NAME

        test -x $DAEMON || exit 0

        d_start() {

                $DAEMON  || echo -n " already running"
        }

        d_stop() {
                $DAEMON -s quit || echo -n " not running"

        }

        d_reload() {

                $DAEMON -s reload || echo -n " could not reload"
        }

        d_status() {

                ps  -ef|grep nginx|grep  -v grep
        }
        case "$1" in 
        start)
                echo  -n "starting $DESC :$NAME"
                d_start
                echo  "."
        ;;
        stop)
                echo -n "stopping $DESC :$NAME"
                d_stop
                echo "."
        ;;
        reload)
                echo  -n "reloading $DESC :$NAME configuration...."
                d_reload
                echo "reloaded."
        ;;
        restart)
                echo  -n "restart $DESC :$NAME "
                d_stop
                sleep 2
                d_start
                echo "."
        ;;
      status)
                d_status
        ;;
        *)
                echo "$SCRIPTNAME {start|stop|restart|reload}"  >&2
                exit 3
        esac
        exit 0
EOF
chmod +x /etc/init.d/nginx
chkconfig --add nginx

参考资料

  • Nginx HTTP Server
原文地址:https://www.cnblogs.com/luomgf/p/4963662.html