无缝不中断服务平滑升级Nginx
2017-08-27 12:23:42   来源:我爱运维网   评论:0 点击:

这就使得需要将原来的nginx-0.7.54无缝且不中断服务、平滑地升级至nginx-1.12.1稳定版。 最终证明,可以按照下面这几个步骤顺利完成无缝不中断服务平滑升级Nginx高版本。

Nginx保持着一个较快速的更新,5年前是0.7.54,当前稳定版已是1.12.1。之前一直使用0.7.54的稳定版,但现在网站都是要支持HTTPS,所以要升级支持SSL,而且苹果应用指定要支持TLS v1.2,无奈Nginx 1.0.12版本以上才支持TLSv1.2。

0.7.54版本均不支持TLS v1.1与TLS v1.2

# ../sbin/nginx -t [warn]: invalid value "TLSv1.1" in /usr/local/webserver/nginx/conf/vhost_5iops_exam.conf:18 configuration file /usr/local/webserver/nginx/conf/nginx.conf test failed
# ../sbin/nginx -t [warn]: invalid value "TLSv1.2" in /usr/local/webserver/nginx/conf/vhost_5iops_exam.conf:19 configuration file /usr/local/webserver/nginx/conf/nginx.conf test failed

这就使得需要将原来的nginx-0.7.54无缝且不中断服务、平滑地升级至nginx-1.12.1稳定版。
最终证明,可以按照下面这几个步骤顺利完成无缝不中断服务平滑升级Nginx高版本。

1. 开始之前先查看一下当前使用的版本。

# ../sbin/nginx -V 
nginx version: nginx/0.7.54 
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 
configure arguments: --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module 

※ 注意configure arguments的值,这是以前编译的参数。我们接下来编译新版本要用到。

 

2.下载新版本:http://nginx.org/en/download.html

然后:解压 > 便以前的准备 > 编译

# tar zxvf nginx-1.21.1.tar.gz
# cd nginx-1.21.1
# ./configure 
--user=www 
--group=www 
--prefix=/usr/local/webserver/nginx 
--with-http_stub_status_module 
--with-http_ssl_module 

# make

3. 执行完后,这里不用在 make install 了,接下来重名/sbin/nginx为nginx.old

# mv /usr/local/webserver/nginx/sbin/nginx /usr/local/webserver/nginx/sbin/nginx.old

4. 复制编译后objs目录下的nginx文件到nginx的安装目录sbin/下

# cp objs/nginx /usr/local/webserver/nginx/sbin/

5. 测试一下新复制过来文件生效情况:

# /usr/local/webserver/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful
可以看到新版本Nginx 1.21.1已成功支持TLS v1.1 TLS v1.2的配置。

6. 让nginx把nginx.pid文件修改成nginx.pid.oldbin,随即启动nginx,实现不间断

# kill -USR2 `cat /usr/local/webserver/nginx/nginx.pid`  更新配置文件
# kill -QUIT `cat /usr/local/webserver/nginx/nginx.pid.oldbin` 优雅的关闭

7. 升级完成了,最后在看一下升级后的版本

# /usr/local/webserver/nginx/sbin/nginx -v
nginx: nginx version: nginx/1.21.1

 

相关热词搜索:Nginx 升级

上一篇:Nginx + Tomcat + HTTPS 配置并不需要在Tomcat 上启用SSL 支持
下一篇:最后一页

分享到: 收藏