zoukankan      html  css  js  c++  java
  • centos 升级nginx到1.10.2

    之前装的是1.6.3版本,准备升级到1.10.2版本。

    1、下载nginx1.10.2

    wget http://nginx.org/download/nginx-1.10.2.tar.gz

    2、解压缩

    tar xvf nginx-1.10.2.tar.gz

    3、查看当前nginx的模块配置

    nginx -V

    nginx version: nginx/1.6.3
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
    TLS SNI support enabled
    configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' --add-module=/root/nginx-sticky

    注意,根据nginx官方文档的描述,从1.9.5版本开始,http_spdy_module被替换为http_v2_module了。

    4、进入nginx1.10.2目录,修改配置,生成makefile文件:

    cd nginx-1.10.2/

    ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' --add-module=/root/nginx-sticky

    5、编译
    make

    make install   (如果不执行,报错nginx.pm版本号不对)

    6、停止nginx
    service nginx stop

    7、替换nginx
    cp /usr/sbin/nginx /usr/sbin/nginx.bak.20161202
    cp ./objs/nginx  /usr/sbin/nginx

    8、重新启动

    service nginx restart

    ----------------------------------------

    如果无法通过service启动或停止nginx,需要配置一下。

    1、vim /etc/init.d/nginx #创建nginx的启动,停止,重启的脚本,需要添加如下内容。

    注意nginx配置文件的位置,默认是/etc/nginx/nginx.conf,可以改为自己的目录。

    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  Nginx is an HTTP(S) server, HTTP(S) reverse #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/nginx.pid
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    
    nginx="/usr/sbin/nginx"
    prog=$(basename $nginx)
    
    NGINX_CONF_FILE="/etc/nginx/nginx.conf"
    
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    
    lockfile=/var/lock/subsys/nginx
    
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -TERM
        retval=$?
        if [ $retval -eq 0 ]; then
            if [ "$CONSOLETYPE" != "serial" ]; then
               echo -en "\033[16G"
            fi
            while rh_status_q
            do
                sleep 1
                echo -n $"."
            done
            rm -f $lockfile
        fi
        echo
        return $retval
    }
    
    restart() {
        configtest || return $?
        stop
        start
    }
    
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $nginx -HUP
        sleep 1
        RETVAL=$?
        echo
    }
    
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
    
    rh_status() {
        status $prog
    }
    
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    
    # Upgrade the binary with no downtime.
    upgrade() {
        local pidfile="/var/run/${prog}.pid"
        local oldbin_pidfile="${pidfile}.oldbin"
    
        configtest || return $?
        echo -n $"Staring new master $prog: "
        killproc $nginx -USR2
        sleep 1
        retval=$?
        echo 
        if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]];  then
            echo -n $"Graceful shutdown of old $prog: "
            killproc -p ${oldbin_pidfile} -TERM
            sleep 1
            retval=$?
            echo 
            return 0
        else
            echo $"Something bad happened, manual intervention required, maybe restart?"
            return 1
        fi
    }
    
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        force-reload|upgrade) 
            rh_status_q || exit 7
            upgrade
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        status|status_q)
            rh_$1
            ;;
        condrestart|try-restart)
            rh_status_q || exit 7
            restart
            ;;
        *)
            echo $"Usage: $0 {start|stop|reload|configtest|status|force-reload|upgrade|restart}"
            exit 2
    esac

     保存并退出

    2. chmod +x /etc/init.d/nginx #给予相关的权限

    3. /sbin/chkconfig nginx on #添加到开机启动

    4. /sbin/chkconfig --list nginx 查看开机启动菜单

    5. 如上操作之后就可以使用service nginx start,service nginx stop,service nginx restart等命令、

    如果启动失败,看下配置文件是否OK

    > nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: [emerg] mkdir() "/var/lib/nginx/tmp/client_body" failed (2: No such file or directory)
    nginx: configuration file /etc/nginx/nginx.conf test failed

    提示临时目录不存在,手工创建一个:

    > mkdir -p /var/lib/nginx/tmp/client_body

    > service nginx restart
    Restarting nginx (via systemctl): [ OK ]

  • 相关阅读:
    二维数组排序
    正则验证
    yii2视频教材
    yii2数据库简单操作
    MySQL(zip版)安装教程
    OpenCV插件
    机器视觉项目总结——光源
    VS2017运行YOLOv4
    VS打开cmd(直接在项目路径)
    【转载】Win10安装Ubuntu子系统
  • 原文地址:https://www.cnblogs.com/lavezhang/p/6125807.html
Copyright © 2011-2022 走看看