nginx 1.14.0 升级到 1.23.3

一、把之前的备份一下

  • 备份该目录:/etc/nginx/sites-available

    $ cd /etc/nginx/
    $ zip -q -r sites-available.zip sites-available
    
  • 查看端口情况

    $ ps -ef | grep nginx
    root      4539     1  0  2022 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
    www-data  4540  4539  0  2022 ?        00:00:59 nginx: worker process
    www-data  4541  4539  0  2022 ?        00:00:01 nginx: worker process
    root     23678 23599  0 14:53 pts/0    00:00:00 grep --color=auto nginx
    
  • 下载新版压缩包

    $ wget https://nginx.org/download/nginx-1.23.3.tar.gz
    

    解压

    $ tar zxf nginx-1.23.3.tar.gz
    
  • 旧版信息

    $ nginx -V
    nginx version: nginx/1.14.0 (Ubuntu)
    built with OpenSSL 1.1.1  11 Sep 2018
    TLS SNI support enabled
    configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-GkiujU/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
    

    关键信息 configure arguments:xxx

  • 编译新版本

    ./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
    

    正确返回

    Configuration summary
      + using threads
      + using system PCRE library
      + using system OpenSSL library
      + using system zlib library
    
      nginx path prefix: "/usr/share/nginx"
      nginx binary file: "/usr/share/nginx/sbin/nginx"
      nginx modules path: "/usr/lib/nginx/modules"
      nginx configuration prefix: "/etc/nginx"
      nginx configuration file: "/etc/nginx/nginx.conf"
      nginx pid file: "/run/nginx.pid"
      nginx error log file: "/var/log/nginx/error.log"
      nginx http access log file: "/var/log/nginx/access.log"
      nginx http client request body temporary files: "/var/lib/nginx/body"
      nginx http proxy temporary files: "/var/lib/nginx/proxy"
      nginx http fastcgi temporary files: "/var/lib/nginx/fastcgi"
      nginx http uwsgi temporary files: "/var/lib/nginx/uwsgi"
      nginx http scgi temporary files: "/var/lib/nginx/scgi"
    

    类似以下报错信息

    ./configure: error: the HTTP rewrite module requires the PCRE library.
    

    解决:

    $ sudo apt-get install libpcre3 libpcre3-dev
    $ sudo apt-get install openssl libssl-dev
    $ sudo apt-get install  zlib1g zlib1g-dev
    $ sudo apt-get install libgeoip-dev
    $ sudo apt-get install libgd-dev
    $ sudo apt-get install libxslt-dev
    

    执行make

    $ make
    

    ubuntu 换源

    $ vim /etc/apt/sources.list # 以下内容为文件所有内容
    
    #  中科大源
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
    
    $ sudo apt-get update
    $ sudo apt-get upgrade
    

    重命名原来的nginx

    位置

    $ whereis nginx
    nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
    

    重命名

    $ mv /usr/sbin/nginx /usr/sbin/nginx.old
    

    复制新版本

    $ cp objs/nginx /usr/sbin/
    

    查看版本信息

    $ /usr/sbin/nginx -t
    

    报错

    nginx: [emerg] module "/usr/share/nginx/modules/ngx_http_geoip_module.so" version 1014000 instead of 1023003 in /etc/nginx/modules-enabled/50-mod-http-geoip.conf:1
    

    解决

    # 卸载后问题解决,这里需要重新启动
    $ apt-get remove nginx-mod* 
    $ cp objs/nginx /usr/sbin/
    $ sudo service nginx start
    
    # 这个执行失败
    $ apt-get install nginx-module-*
    

未经允许不得转载