当前位置:首页 > 技术文章 > 正文内容

线上环境如何无感升级Nginx版本? nginx在线升级

arlanguage5个月前 (12-18)技术文章35

由于一直有第三方在扫描网站,并且扫描到了大量的NGINX漏洞,并且在Nginx官网也提供了各种补丁,各种升级版本,由于打补丁的方式太过于麻烦了,所以很多人选择了直接升级到指定的版本来修复漏洞。

但是线上环境一定要做到无感升级,不影响正常运行的业务,下面我们就来看看,在线上环境如何实现Nginx的无感升级。

如何查看Nginx版本信息?

可以通过如下的命令来查看当前的Nginx的版本

nginx -v # 用来查看当前版本号
nginx -V # 用来查看当前版本号,以及一些详细的信息

如何升级?

第一步,下载安装包

可以到官网下载稳定版本的Nginx的包,建议尽量使用官网下载对应的稳定版本。

第二步,上传加压

将下载好的安装包上传到需要更新的服务器上,并且使用tar命令进行解压缩。

tar -zxvf nginx-1.24.0.tar.gz

解压后进入到Nginx文件中。

使用nginx -V的方式来查看版本信息,如下所示

[root@localhost ~]# nginx -V
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2 22 Jan 2015
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/nginx/pcre-8.35 --with-openssl=/usr/local/src/nginx/openssl-1.0.2
[root@localhost ~]# 

这里主要关注的是下面的配置参数configure arguments,如果这个参数后面没有内容,就可以直接执行对应的./configure文件,如果后面跟了内容,那么在配置的时候一定要加上对应的参数。如上所示,在进入到nginx-1.24.0目录进行配置的时候,需要加上对应的参数,如下所示。

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/nginx/pcre-8.35 --with-openssl=/usr/local/src/nginx/openssl-1.0.2

执行这一步的时候有可能会出现编译失败或者是安装失败的情况。这是因为新版本中可能会有一些新的依赖,所以执行会报错。这个时候需要根据具体的提示安装好对应的依赖即可。

第三步,执行Make命令

配置完成之后,需要在Nginx目录中执行make命令,执行完成之后,在nginx目录下会有一个./objs/nginx文件,接下来将旧的nginx启动文件进行备份、并且将新的目录下的./objs/nginx 文件复制到旧的文件位置中。如下所示。

# 为了保险起见需要备份旧的启动文件
mv /usr/sbin/nginx  /usr/sbin/nginx.bak
# 将编译好的启动文件复制到旧的里面
cp objs/nginx /usr/sbin/nginx

这个时候查看Nginx的进程。

ps -ef|grep nginx

查看新的Nginx目录中的Makefile文件。需要修改一个upgrade配置,如果这个地址对应的不是旧的地址所对应的nginx,就需要进行手动的修改。但是一般情况下是不需要进行修改的。

修改好之后,在新版本的安装目录中执行 make upgrade 命令进行升级。这时候就开始执行自动更新了。

更新完成之后,进入到nginx命令目录中,执行 nginx -V 的命令来查看对应的版本信息。就看到nginx已经变成了新的版本。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/283.html

分享给朋友:

“线上环境如何无感升级Nginx版本? nginx在线升级” 的相关文章

Nginx配置中root和alias分不清?本文3分钟帮你解惑

Nginx在配置映射路径的时候,有时候看到的是root,有时候看到的是alias,这两个有什么区别?本文笔者将带大家详细了解一下。什么是NginxNGINX 是全球最受欢迎的 Web 服务器之一,用于反向代理和负载均衡,还提供 HTTP 服务器功能,主要是为实现最大性能和稳定性而设计的。Ubuntu...

ThinkPhp6从安装到配置全解

Thinkphp6已经不支持之前安装方式了,只能使用Composer安装,对于V6的新用户来说,真希望有个全过程手册,我就分享一下我自己安装使用的过程,供参考。一、安装Composer在 Linux 和 Mac OS中可以运行如下命令:curl -sS https://getcomposer.org...

php高并发的瓶颈到底在哪

php高并发的瓶颈到底在哪?是同步阻塞?还是nginx+fpm不断创建-销毁进程资源过度消耗?高并发到底是什么问题,是语言问题嘛,为什么说php不适合高并发?求大佬指点从2009年后一直用lnmp,从5.2.17一直到现在的PHP7.4,做的项目无数个,大到日IP10W+、PV50W+的平台,小到日...

一文教会你如何使用 iLogtail SPL 处理日志

作者:阿柄随着流式处理的发展,出现了越来越多的工具和语言,使得数据处理变得更加高效、灵活和易用。在此背景下,SLS 推出了 SPL(SLS Processing Language) 语法,以此统一查询、端上处理、数据加工等的语法,保证了数据处理的灵活性。iLogtail 作为日志、时序数据采集器,在...

在Ubuntu上将Nginx升级到最新版本

在Ubuntu上将Nginx升级到最新版本如果你在Ubuntu上运行nginx,你很快就会发现,操作系统中默认的Ubuntu版本真的很旧。这意味着你需要运行最新版本的Nginx来避免安全问题。这篇文章是关于如何做到这一点。第一件事是找出你使用的是哪个版本。以下是你如何做。$ nginx -v 它应该...

Nginx 500 内部服务器错误排查指南

关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。本文提供了解决 Nginx 500 Internal Server Error 的详尽教程,以及分步说明和故障排除建议。“500 Internal Server Error”消息对于网站所有者和 Web 开发人员来说当然是众所周知的。包括...