您的位置:首页 > 文旅 > 旅游 > nginx服务部署及其平滑升级

nginx服务部署及其平滑升级

2025/3/26 3:56:02 来源:https://blog.csdn.net/weixin_43945111/article/details/141194517  浏览:    关键词:nginx服务部署及其平滑升级

概述

在这里插入图片描述

1. 7层负载均衡(nginx)

1. 停掉4层的环境

systemctl disable --now keepalived.service # 停用之前的4层协议方式

2. 源码安装nginx

tar zxf nginx-1.22.1.tar.gz 

具体方式是源码编译“三部曲”

./configure # 负责检查环境,生成指导安装的文件makefile
make # 根据生成的makefile文件指导,生成二进制文件
make install # 根据生成的二进制文件,进行安装

2.1 ./configure

./configure --help # 可以添加可选项,进行自定义安装
yum install -y gcc # 安装C编译器
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module # 指定位置进行安装

在这里插入图片描述
在这里插入图片描述

yum install -y pcre-devel # 只需要在缺的包后面加入-devel,即可安装

在这里插入图片描述

2.2 make

在这里插入图片描述

make clean # 删除之前的编译
vim auto/cc/gcc # 禁用该文件里面的debug,只有开发环境需要debug

在这里插入图片描述

重新执行源码编译三步曲前两步
在这里插入图片描述

2.3 make install

在这里插入图片描述

3. nginx的基本使用

在这里插入图片描述
在这里插入图片描述

/usr/local/nginx/sbin/nginx # 启动服务
sbin/nginx -s stop # 停用

3.1 nginx软链接以及使用(无启动脚本)

在这里插入图片描述

3.2 脚本启动nginx

在这里插入图片描述

4. nginx平滑升级(在线升级)

在新版本上
不要执行make install
启动nginx时候需要用完整路径,而不是软链接

在这里插入图片描述

vim auto/cc/gcc # 修改为相同配置
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module # 相同
make

在这里插入图片描述

cd /usr/local/nginx/sbin/
cp nginx nginx.old# 对原始nginx程序进行备份
 \cp -f nginx /usr/local/nginx/sbin/ # 复制新版本的nginx到原始目录中
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` # 发送平滑迁移信号 USR2: 启动新的主进程,实现热升级

在这里插入图片描述

kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin` # 发送WINCH信号给旧版主进程,旧版主进程就开始从容关闭

在这里插入图片描述

4. nginx平滑回退

  \cp -f nginx_26 nginx # 恢复备份kill -HUP `cat /usr/local/nginx/logs/nginx.pid.oldbin` # 启动版本的worker进程kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` # 在新版本上进行回退kill -WINCH `cat /usr/local/nginx/logs/nginx.pid` # 关闭新版本的worker进程kill -9 `cat /usr/local/nginx/logs/nginx.pid`

在这里插入图片描述
在这里插入图片描述

5. 问题

执行USR2没有出现新的Master进程信息,日志文件报错

execve()failed while executing new binaryprocess "nginx"(2:No such file or directory)

在这里插入图片描述
在这里插入图片描述

这是因为之前使用的是软链接的方式打开的nginx,在升级的时候找不到路径。
解决:使用绝对路径打开nginx

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com