zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    day19 反射
    Oracle函数整理
    在博客园设置访问人数
    数据库中行转列
    Oracle中数据库与实例的区别
    sql语句的执行顺序
    【地址】ps_cs6安装
    ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
    人员管理模块密码过期
    相关性配置模块总结
  • 原文地址:https://www.cnblogs.com/luomgf/p/4963662.html
Copyright © 2011-2022 走看看