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

记一次nginx程序漏扫升级 nginx补丁升级

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

今天收到了一份服务器的漏扫报告,反馈服务器的nginx应用存在安全漏洞,需要升级nginx程序版本(程序升级只是修复安全漏洞的一部分,还有其他的操作,因为谈不上通用,文章中就不写了)。

我首先上网查了查报告中反馈的漏洞信息,确认了漏洞涉及的程序版本,再登录服务器执行 nginx -v 确定了服务器当前的版本,最终根据以上信息决定将服务器上的nginx升级到1.22.1版本(一个较新的,但不是最新的,保持兼容性,也尽量保障稳定性)。

接着执行升级前的备份。通过执行 nginx -T 命令确认nginx程序配置文件的位置;执行 nginx -V命令确定当前版本nginx编译使用的参数;执行 which nginx 命令确定nginx可执行程序的位置。使用cp命令对nginx程序文件和配置文件进行备份。

接下来就是下载nginx的升级包了。本次采用的是源码安装,从nginx官网下载了1.22.1版本的源码包,解压到/soft目录下,执行 tar -xzvf "源码包" 命令解压下载的安装包。

再下来就是编译安装,进入解压后的安装包目录,执行 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-pcre 命令,注意这里的配置参数“--prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-pcre”都是刚刚通过执行 nginx -V命令查询到的。

不过这次比较可惜,初始化configure执行完成以后,执行 make 命令编译时报错了。我看了一下出错信息,报错都是和openssl相关的,提示没有找到相关的库文件,所以先执行 make clean 清除刚刚编译生成的临时文件,再次执行初始化configure命令时,增加了“--with-openssl=/usr/local/openssl/openssl-1.1.1q”参数。完整的命令是“./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-pcre --with-openssl=/usr/local/openssl/openssl-1.1.1q”,其中/usr/local/openssl/openssl-1.1.1q是openssl程序的安装位置。

再执行 make 命令就没有出错了。先不着急执行 make install,先执行 systemctl stop nginx命令停止当前的nginx服务,然后再执行 make install, 之后执行 nginx -v命令确认nginx程序的版本是否已经更新,如果没有问题,使用 systemctl start nginx 命令启动nginx服务。

如果需要更新nginx的配置文件,更新nginx.conf文件后,先执行 nginx -t 命令检查配置文件的语法是否正确,没有问题的话再执行 systemctl reload nginx命令重新加载nginx的配置文件。

如果nginx程序升级后出现问题,可以还原之前备份的nginx应用程序或者nginx.conf配置文件,这样nginx应用就可以回退到之前的版本或配置。

这次升级nginx程序并没有采用“不停服务”升级的方式,主要是业务系统是5x8的,没有必要增加升级的复杂性。如果需要“不停服”升级nginx程序,大家可以参考网上的相关文章,这类操作其实还是非常成熟的。

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

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

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

分享给朋友:

“记一次nginx程序漏扫升级 nginx补丁升级” 的相关文章

nginx限制php程序“跨站”访问 nginx限制只能域名访问

我秀站外合作有一个需求:需在一台web服务器上增加一个虚拟主机用来做图片资源站,所用程序为第三方,担心有后门程序,因此希望最好隔断与原机器其他服务的关系。思考了一下,确实有一些风险存在。目前我们服务器上都统一使用nobody用户启动nginx和php,包括web目录,这些机器上部分有多个域名在一起运...

Nginx安装、启动、停止、重载、查看

Nginx介绍Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在开源BSD-like 协议下发行。特点是占有内存少,并发能力强。1、安装 Nginx程序yum install nginx -y 或 dnf install nginx -y2、n...

平稳运行半年的系统宕机了,记录一次排错调优的全过程

(一)前言最近发生了一件很让人头疼的事情,已经上线半年且平稳运行半年系统在年后早高峰的使用时发生了濒临宕机的情况。访问速度特别慢,后台查到大量time_wait的连接,从代码层面到架构层面到网络层面排查了几天几夜,总算是有了结果。(二)架构、问题描述先简单描述一下这个系统的架构,公网域名对应的公网I...

在SpringBoot+Vue3项目中通过Nginx代理WebSocket实现跨域通信

引言在现代Web开发中,实时数据交互变得越来越重要,而WebSocket作为HTML5标准的一部分,提供了一种全双工、长连接的通信方式,使得服务器与客户端可以进行双向实时通信。但在实际应用中,由于浏览器同源策略的限制,前端应用直接访问后端WebSocket服务可能会受到阻碍,尤其是在前后端部署不在同...

Vue3项目没有独立域名靠路径分发的痛苦部署方式

Vue3项目部署注意事项,特别是如果有路径分发,没有独立域名的情况,会遇到各种刷新404页面的问题,那怎么解决呢?root和alias的区别nginx配置文件中,指定静态资源路径时,root和alias的区别路径拼接方式: 使用root时,location块中指定的URI将会直接拼接到root路径后...

Nginx中的root和alias指令该如何使用?

Nginx是一款流行的Web服务器软件,常被用于反向代理。在Nginx的配置文件中,经常用到root和alias指令,这两个指令有什么区别。下面是一个具体的示例,配置文件如下:server { listen 80; server_name www.aneirin.xyz;...