Nginx分布式框架详解-基础18-21nginx服务升级
2022/8/15 5:24:35
本文主要是介绍Nginx分布式框架详解-基础18-21nginx服务升级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
nginx服务的命令行控制
- 此方式是通过 Nginx 安装目录下的 sbin 下的可执行文件 nginx(文件名) 来进行对 Nginx 状态的控制,我们可以通过 nginx -h 来查看都有哪些参数可以用
cd /usr/local/nginx/sbin ./nginx -h
选项 | 作用 |
---|---|
-? 和 -h | 显示帮助信息 |
-v | 打印版本号信息并退出 |
-V | 打印版本号信息和配置信息并退出 |
-t | 测试 Nginx 的配置文件语法是否正确并退出 |
-T | 测试 Nginx 的配置文件语法是否正确并列出用到的配置文件信息然后退出 |
-q | 在配置测试期间过滤掉非错误消息,只输出错误信息,一般这样用:./nginx -tq |
-s | signal 信号,后面的命令和服务信号控制功能类似: stop:快速关闭,类似于 TERM/INT 信号的作用 quit:优雅的关闭,类似于 QUIT 信号的作用 reopen:重新打开日志文件类似于 USR1 信号的作用 reload:重启 Nginx,类似于 HUP 信号的作用 |
-p | prefix,指定 Nginx 的默认安装路径,(默认为:/usr/local/nginx/) |
-c | filename,指定 Nginx 的配置文件路径,(默认为:conf/nginx.conf) |
-g | 用来补充 Nginx 配置文件,向 Nginx 服务指定启动时应用全局的配置 |
- -c的使用案例
cp /usr/local/nginx/conf/nginx.conf /usr/local/abc.conf cd /usr/local/nginx/sbin ./nginx -tc /usr/local/abc.conf # 当然启动nginx的时候也可以指定配置文件路径 ./nginx -c /usr/local/abc.conf
一般情况下-c和-t是配合着使用的。
- -g 的使用案例
# 关闭nginx ./nginx -s quit # 开启nginx ./nginx -g "pid logs/abc.pid;" # 查看logs目录 ls /usr/local/nginx/logs # 停止nginx ./nginx -s stop # 报错 nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory) # 查出进程号 ps -ef|grep nginx # 通过信号关闭 kill -INT 2086
nginx服务器版本升级需求分析
- 如果想对 Nginx 的版本进行更新,或者要应用一些新的模块,最简单的做法就是停止当前的 Nginx 服务,然后开启新的 Nginx 服务。但是这样会导致在一段时间内,用户是无法访问服务器。为了解决这个问题,我们就需要用到 Nginx 服务器提供的平滑升级功能。这个也是 Nginx 的一大特点,使用这种方式,就可以使 Nginx 在 7 * 24 小时不间断的提供服务了。接下来我们分析下需求:
需求:Nginx 的版本最开始使用的是 Nginx-1.14.2,由于服务升级,需要将 Nginx 的版本升级到 Nginx-1.16.1,要求 Nginx 不能中断提供服务。
为了应对上述的需求,这里我们提供两种解决方案:
- 使用 Nginx 服务信号完成 Nginx 的升级
- 使用 Nginx 安装目录的 make 命令完成升级
版本升级其实就是替换可执行文件 nginx。
- 环境准备
先准备两个版本的 Nginx 分别是 1.14.2 和 1.16.1
使用 Nginx 源码安装的方式将 1.14.2 版本安装成功并正确访问
# 解压 1.14.2 版本 tar -xzf nginx-1.14.2.tar.gz # 进入解压目录 cd nginx-1.14.2/ # 执行配置文件 ./configure # 编译安装 make && make install
将 Nginx 1.16.1 版本进行参数配置和编译,不需要进行安装。
# 解压 1.16.1 版本 tar -xzf nginx-1.16.1.tar.gz # 进入解压目录 cd nginx-1.16.1/ # 执行配置文件 ./configure # 仅仅编译 make
使用nginx服务信号进行升级
第一步:将 1.14.2 版本的 sbin 目录下的 nginx 进行备份
不是复制一份,是直接修改原来的 nginx。
# 进入 sbin 目录下 cd /usr/local/nginx/sbin # 备份为 nginxold 文件 mv nginx nginx.backup
第二步:将 Nginx 1.16.1 安装目录编译后的 objs 目录下的 nginx 文件,拷贝到原来 /usr/local/nginx/sbin 目录下
如果第一步没有备份,那么将会覆盖 1.14.2 的 nginx 文件
# 进入 objs 目录 cd ~/nginx/core/nginx-1.16.1/objs # 拷贝可执行文件到原来的目录 cp nginx /usr/local/nginx/sbin
第三步:发送信号 USR2 给 Nginx 的 1.14.2 版本对应的 master 进程
kill -USR2
cat /usr/local/nginx/logs/nginx.pid 第四步:发送信号 QUIT 给 Nginx 的 1.14.2 版本对应的 master 进程 `kill -QUIT `cat /usr/local/logs/nginx.pid.oldbin
nginx使用make命令升级
- 使用Nginx安装目录的make命令完成升级操作
第一步和第二部和上面一样,不在赘述
第三步:进入到安装目录,执行 make upgrade
cd /root/nginx-1.22.0 make upgrade
第四步:查看是否更新成功
/usr/local/nginx/sbin/nginx -v
在整个过程中,其实 Nginx 是一直对外提供服务的。并且当 Nginx 的服务器启动成功后,我们是可以通过浏览器进行直接访问的,同时我们可以通过更改 html 目录下的页面来修改我们在页面上所看到的内容,那么问题来了,为什么我们要修改 html 目录下的文件,能不能多添加一些页面是 Nginx 的功能更加丰富,还有前面聊到 Nginx 的前端功能又是如何来实现的,这就需要我们对 Nginx 的核心配置文件 进行一个详细的学习。
这篇关于Nginx分布式框架详解-基础18-21nginx服务升级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享