引言
随着版本的迭代和破绽的发现,Nginx作为一款软件防止不了打补丁的命运。
以下基于Linux间接装置的Nginx版本升级。
以下操作均在本地虚拟机中操作验证,请验证后再线上操作。基于centos7测试。
前置资源
- 获取nginx的最新源码版本网址: http://freenginx.org/
- 查看nginx的版本命令:
nginx -V
基于源码装置Nginx
装置编译环境
nginx基于c语言编写的,所以装置之前须要装置编译环境。
### 装置编译环境和依赖包yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel## 验证编译环境是否装置胜利gcc --versiongcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)Copyright (C) 2015 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
逆向编译命令
nginx编译通过 ./configure
命令加指定参数来实现,对应的参数决定了应用程序的装置地位、日志文件地位、依赖库应用状况等。
所以在装置之前须要晓得如下信息:
- 应用到的依赖库
- 程序安装地位
- 启用的模块
以上信息能够通过ngingx -V
来获取。
## 进入nginx的装置目录nginx -V## 能够看到对应的配置参数信息nginx version: nginx/1.24.0built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017TLS SNI support enabledconfigure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_stub_status_module
装置新版本nginx
- 到正式网站下载源码:
举荐Free版本 http://freenginx.org/en/download.html
或者F5版本 http://nginx.org/en/download.html
freenginx 是nginx被F5收买进去的一个独立分支,由原来的nginx的外围人员保护,就像mariadb和mysql的关系。
- 上传源码到指定服务器,开始装置。
# 解压源码tar -xf nginx-1.25.4.tar.gzcd nginx-1.25.4## 依据逆向失去的参数进行编译./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_stub_status_module## 如果短少对应依赖库,能够通过如下命令装置yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel## 也能够到对应库的正式网站下载安装,通过命令指定装置地位,比方./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_stub_status_module --with-pcre=/root/install_app/pcre2-10.43## 装置makemake install## 查看装置后的版本/usr/local/nginx/sbin/nginx -Vnginx version: nginx/1.25.4built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)built with OpenSSL 1.0.2k-fips 26 Jan 2017TLS SNI support enabledconfigure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_stub_status_module --with-pcre=/root/install_app/pcre2-10.43
以上是通过笼罩的形式降级nginx,留神提前做好备份,防止数据失落。
基于安装包装置Nginx
nginx在linux上做了很多散发包,包含debian、centos、ubuntu等。通过nginx官网的安装包降级nginx,能够防止编译过程的麻烦。
确认nginx是通过安装包装置的,能够通过装置门路查看。个别nginx的装置门路为离开的,包含任意门路能够执行nginx -V
。
centos通过rpm -qa nginx
查找nginx的安装包是否存在。
降级过程如下:
## 装置nginx的仓库源,拜访 http://nginx.org/packages/centos/7/noarch/RPMS/ 下载 nginx-release-centos-7-0.el7.ngx.noarch.rpm wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm## 装置nginx源rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm## 查看nginx安装包列表yum --showduplicates list nginx## 装置最新版本的nginxyum install nginx.x86_64## 验证版本nginx -V
阐明
以上就是nginx 1.21.5降级到1.25.4的过程。不同镜像版本可能降级过程不统一。
请在虚拟机中操作验证,请勿间接线上生产主机操作。
对于作者
来自一线全栈程序员nine的八年摸索与实际,继续迭代中。欢送关注“雨林寻北”或增加集体卫星codetrend(备注技术)。