前言


关于nginx,我们通常都会提到nginx的平滑升级。即在不影响业务的情况下,对正在使用的nginx的版本进行升级。而这个操作是只在有必要升级时才进行的。

关于nginx的平滑升级与nginx添加模块基本相同,可参考下列链接:
https://blog.csdn.net/GX_1_11_real/article/details/85784689

下面我们就演示一下对yum安装的nginx的平滑升级,如原先的nginx是编译安装,升级时要注意根据自己的实际的配置情况。



【1】查看yum安装的nginx版本及现有配置


先记录下以前的配置,后面会用到


nginx -V

nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-debug --with-cc-opt=’-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic’ --with-ld-opt=’-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E’ --add-module=/root/nginx-rtmp-module

configure arguments:后面,即为nginx现有的配置



【2】下载需要的新版本的nginx的源码包


wget http://nginx.org/download/nginx-1.14.2.tar.gz


【3】将原来的nginx重要文件备份(为了安全)


mv /usr/sbin/nginx /usr/sbin/nginx.back
cp -rf /etc/nginx /etc/nginx.back


【4】进行编译


采用前面查到的配置,如有新模块要添加也可加入


tar xf  nginx-1.14.2.tar.gz
cd nginx-1.14.2

./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-debug --with-cc-opt=’-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic’ --with-ld-opt=’-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E’ --add-module=/root/nginx-rtmp-module



【5】make


由于原先已有nginx,所以不能执行make install,否则会覆盖掉以前的配置文件及内容


make
cp objs/nginx /usr/sbin/nginx


【6】检查是否成功


/usr/sbin/nginx -t



【7】平滑切换


注意:要根据自己实际的编译的配置内容,查找自己的pid文件的位置。文中原来的nginx为yum安装,所以在 /var/run下。

实际上也可在nginx-1.14.2目录下,使用make update 升级,为了避免问题,建议全手动处理


kill -USR2 `cat /var/run/nginx.pid`              将旧版本Nginx的主进程将重命名为nginx.pid.oldbin,并执行新版本的Nginx可执行程序,启动新的主进程和新的工作进程,再次生成新的nginx.pid文件
kill -WINCH `cat /var/run/nginx.pid.oldbin`      平缓停止worker process(此步骤可省略)
kill -QUIT `cat /var/run/nginx.pid.oldbin`       平缓停止旧的Nginx服务进程


【8】查看



补充

【1】Nginx支持的信号


可以用来控制Nginx的活动


TERM,INT——快速关闭

QUIT          平滑关闭HUP           平滑重启,重新加载配置文件USR1          重新打开日志文件USR2          平滑升级可执行程序WINCH         平滑关闭工作进程

nginx的平滑升级相关推荐

  1. nginx的平滑升级方法:

    最简单的nginx的平滑升级方法: 1 找到nginx的执行文件的路径 1 # ps auxf|grep nginx  记下nginx的master进程 pid(我这里是2752 ) 2 查看当前ng ...

  2. 源码安装nginx以及平滑升级

    源码安装nginx以及平滑升级 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:高级运维工程师之路 598432640 这个博客不方便上传软件包,我给大家把软件包放到百度云 ...

  3. nginx进行平滑升级

    文章目录 前言 一.准备工作 1.下载需要更新的nginx版本,解压 2.编译并make(不进行make install) 二.升级方法一 1.备份安装目录下的nginx 2.复制objs目录下的ng ...

  4. Nginx的平滑升级记录---适用于编译安装的Nginx

    一.查看自己的Nginx的版本号 [root@localhost sbin]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ls nginx [r ...

  5. 如何对nginx进行平滑升级

    nginx平滑升级,不影响线上业务的运行 这里nginx的安装目录是:nginx 第一步:查看nginx版本号: [root@localhost nginx-web]# nginx -v nginx ...

  6. nginx版本平滑升级(超详细)

    一.前期准备 二.开始实验 安装旧版本 安装新版本 三.可能遇到的问题 文章背景:护网期间,客户跟我说nginx有0day漏洞,需要版本升级,我寻思着我也不是运维啊,问我干嘛(你干嘛~ 哎呦~),我没 ...

  7. Nginx网站服务(安装nginx、平滑升级nginx、nginx各种访问配置)

    文章目录 一.Nginx概述 1.什么是nginx? 2.Nginx应用场景 3.Nginx应用企业 4.nginx的HTTPD七层代理和四层代理 二.Nginx和Apache的区别 三.编译安装Ng ...

  8. WP+Nginx+Ubuntu平滑升级PHP版本

    前言 无障碍升级/切换PHP版本,适用于Ubuntu环境 安装Ondřej Surý PPA 什么是Ondřej Surý PPA? Ondřej Surý PPA Ondřej Surý PPA ( ...

  9. Nginx 的启动、停止、平滑重启、信号控制和平滑升级

    Nginx 的启动          假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/loca ...

最新文章

  1. 阻塞队列(1)--ArrayBlockingQueue底层实现
  2. Django_ORM数据表查询总结
  3. [core]-ARM Core的分类和总结
  4. python数字转日期函数_【转】Python 日期和时间
  5. uploader什么意思_【已解决】请问下uploader上传失败是什么原因
  6. openresty总结
  7. Flex显示图片的常用方式
  8. busybox制作根文件系统
  9. linux学习笔记-7.文件属性
  10. 顶点计划 顾家与工作问题讨论
  11. 2021年大学计算机基础,2021年大学计算机基础试题题库及答案-20210418080659.doc-原创力文档...
  12. 用计算机进行实时自动采集,动态数据采集
  13. Error running ...: No jdk for module
  14. 正好配资点评北交所成立,新基建起爆
  15. Android5.1下拉状态栏新增截屏功能
  16. 【绝对原创】EFS加密文件真的可以解密!各位不要放弃哈~
  17. 【渲染】解决三维出图黑白边缘溢出问题:直通(STRAIGHT)与预乘(PREMULT)ALPHA剖析
  18. 女生被逼疯的日记(课余篇)
  19. 在Chrome、Firefox等高版本浏览器中实现低延迟播放海康、大华RTSP
  20. VASP MAGMOM设置

热门文章

  1. 萌翻全场!硕士爸爸怀抱1岁萌娃参加毕业典礼:带他提前20年体验毕业
  2. UBound 函数 (Visual Basic)
  3. 一份完整的报价单内容
  4. 植物大战 C++ ——基础特性
  5. Modelsim的tcl命令
  6. 《教练型管理者》读书笔记-第2篇 【教练技能】
  7. 最简单的Python3安装教程, 支持Dango/Flask/Tensorflow
  8. 线下销售增长51%,荣耀靠的可不是把体验店装修的像Apple store
  9. 编写一个程序,提示用户输入以兆位每秒(Mb/s)为单位的下载速度和以兆字节(MB)为单位的文件大小。程序中应计算文件的下载时间。
  10. 微信小程序搜索关键词高亮效果(转)