赞
踩
前段时间,负责的课题组网站发现有一些漏洞,升级nginx比较好修,所以下面记录一下nginx的不间断升级以及升级后nginx-module版本不匹配的问题。
现在已经有很多blog来讲这个事情,但是流程有的缺失,有的默认一次成功忽略问题,因此这里把整个流程都写下来,希望能够帮助到各位!
a) 首先利用语句nginx -v
来查看当前的版本信息。并且利用nginx -V
来获得当前nginx重要文件的路径,如配置文件,log文件的路径
b) 前往nginx官网下载最新的稳定版本。下载之后是tar.gz文件,将其传到linux服务器中,并进行解压。
a) 进入解压后的文件夹,运行./configure "str"
, 其中的str指的是nginx -V
返回出来的配置
b) 配置完成后,执行make
a) 需要备份的数据为nginx -V
返回的–conf-path=后面地址中的数据,以及usr/sbin/nginx
文件。直接利用mv语句,mv /usr/sbin/nginx /usr/sbin/nginx.old
, 将nginx备份为nginx.old就可以实现
a) 在编译后的新版本文件夹里,存在objs文件夹,在其中需要将nginx替换到sbin中的nginx,运行下面的命令cp objs/nginx /usr/sbin/nginx
a) 运行/usr/sbin/nginx -t
, 如果输出successful,那么成功,接下来进行第6步,关闭以前版本的nginx, 启动最新版本的nginx; 如果不成功,看第二大部分“版本不匹配的修正”
a) 运行/usr/sbin/nginx.old -s stop
来关闭旧版本的nginx
b)运行/usr/sbin/nginx
来开启版本的nginx
c) 打开你的网站,如果打不开的话,进行service nginx restart
进行重启,就可以打开网站了。
a) 我们在进行nginx升级后,可能会遇到module和nginx不匹配的问题。如下报错:[emerg] 10575#10575: module “/usr/share/nginx/modules/ngx_http_xslt_filter_module.so” version 1020001 instead of 1024000 in /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:1
这个问题实际上是升级后的nginx与module不匹配导致的。
b)解决的方案很简单,我们将obj中的module文件都复制到报错的这个路径下/usr/share/nginx/modules/
, 替换这个路径下的module文件,然后运行/usr/sbin/nginx -t
,即可成功
其中绿色的.so文件利用cp语句进行复制替换
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。