nginx编译安装后对nginx进行平滑升级
nginx编译安装后对nginx进行平滑升级
王先森前言
nginx编译安装后用了一段时间后发现当前版本太老或需要新的功能时就需对当前nginx版本进行版本升级
,但又不能影响正常的使用,所以这时就需到对nginx的平滑升级
,更新到最新版本了。
本文演示的是nginx-1.6.0升级到nginx-1.14.0的过程,其他版本也适用。
基础知识点
官方文档参考:http://nginx.org/en/docs/control.html#upgrade
nginx允许我们通过向她发送信号来控制nginx。nginx的主进程号一般写在 /usr/local/nginx/logs/nginx.pid(即nginx运行时的日志目录下的nginx.pid)。nginx主进程支持以下信号:
信号 | 执行内容 |
---|---|
TERM, INT | fast shutdown (快速停止,相当于nginx -s stop ) |
QUIT | graceful shutdown (优雅的停止,处理完已经接受的请求, 相当于nginx -s quit) |
HUP | changing configuration, keeping up with a changed time zone (only for FreeBSD and Linux), starting new worker processes with a new configuration, graceful shutdown of old worker processes 更改配置,以新的配置文件开启新的worker进程,并优雅的关闭老的worker进程,相当于 nginx -s reload |
USR1 | re-opening log files (重新打开日志文件, 相当于nginx -s reopen ) |
USR2 | upgrading an executable file (升级可执行文件) |
WINCH | graceful shutdown of worker processes (优雅地关闭worker进程) |
nginx新版的下载
下载页面:http://nginx.org/en/download.html
1 | wget http://nginx.org/download/nginx-1.14.0.tar.gz |
获取老版本nginx的配置
查看当前版本:/usr/local/nginx/sbin/nginx -v
查看当前配置:/usr/local/nginx/sbin/nginx -V
1 | [root@linuxboy ~]# /usr/local/nginx/sbin/nginx -v |
解压新版nginx源码包
1 | tar xf nginx-1.14.0.tar.gz |
对新版重新编译前的配置
这里的配置和老版本的一样 : /usr/local/nginx/sbin/nginx -V
1 | ./configure --prefix=/usr/local/nginx-1.6.0 --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl --with-pcre |
执行echo $?
来判断是否安装重新编译成功。
编译
只编译make ,不执行make install
编译后通过ls可以看到有个objs的目录
1 | [root@linuxboy nginx-1.14.0]# ls |
进入objs目录,替换老版本的nginx主程序(在操作这里前一定要先备份,免得出错)
1 | 备份二进制执行文件 |
平滑升级
1 | make upgrade |
升级成功,查看版本
1 | [root@linuxboy ~]# /usr/local/nginx/sbin/nginx -v |
在升级前一定要提前备份好nginx程序和网站等文件,避免出错。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果