安全扫描提示Nginx出现安全漏洞。
一共8个漏洞涉及多个nginx版本。经过考虑决定升级到1.20.1.
下载安装包,使用tar解包。
在服务器端,执行nginx -V查看当前nginx使用了那些配置参数。
然后使用./configure 参数使用nginx -V查到的参数,但是安装目录要使用一个新的。
编译后,没啥问题,再执行make && make install完成安装。
上述完成后,使用ln -s创建软链接,将原nginx的配置路径conf、应用路径html和日志路径logs指向新版nginx下。
最后关闭原来的nginx服务,启动新版nginx。
之前一切顺利,然后启动后,客服反应出现403错误提示。查看了日志,出现大量403错误记录。
先切换回旧版本。
站点的文件是指向原来的目录,配置文件也是,怎么会出现403?
403是拒绝访问资源,访问权限不足的可能性很大。
问题出现在哪里?
...
...
...
所有相关目录和文件看了一遍,突然发现sbin/nginx这个启动服务的程序权限是640,旧版的nginx则是644.很明显,安装时root用户安装,启动服务会使用nginx用户。这样确实会有问题。但是为什么新安装的文件时640?检查/etc/bashrc和/etc/profile,发现mask设置的不是通常的022,而是027.回想下,确实当初为了让更安全,在系统稳定后,将这个权限缩小了。
现在为了安装新版nginx,先改回027,再用source命令重新加载。
再回到nginx安装包目录,重新执行一次./configure 、make && make install
重新创建软链接,关闭旧nginx,启动新nginx,正常访问。