首页 > 系统相关 >记录一次,nginx平滑升级,不需要停止nginx服务,不影响业务访问

记录一次,nginx平滑升级,不需要停止nginx服务,不影响业务访问

时间:2024-01-02 16:31:40浏览次数:22  
标签:00 访问 -- root 平滑 nginx usr local

#下载新版本nginx

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

#解压并安装 tar xf nginx-1.24.0.tar.gz

cd nginx-1.24.0

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-poll_module --with-file-aio \
--with-http_realip_module \
--with-http_addition_module \
--with-http_addition_module \
--with-http_random_index_module \
--with-http_stub_status_module \
--with-pcre --with-stream

make

#备份旧版本的nginx目录

cp /usr/local/nginx /usr/local/nginx_bak

#备份旧版本的二进制启动文件(做人留一线)

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

#拷贝新版本编译好的二进制启动文件

cp nginx-1.24.0/objs/nginx /usr/local/nginx/sbin/

#查看当前进程

ps -aux | grep nginx

#USR2:启动新的主进程,实现热升级

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

#再查看nginx进程,新旧nginx 进程都在

ps -aux | grep nginx

#查看nginx新版本的进程号

cat /usr/local/nginx/logs/nginx.pid
21416

#查看nginx旧版本的进程号

cat /usr/local/nginx/logs/nginx.pid.oldbin 
8087

#平缓停止worker process

kill -WINCH 8087

#平缓停止Nginx服务

kill -QUIT 8087

#我们可以发现nginx低版本的进程都结束了

ps -ef |grep nginx

root     21416     1  0 15:58 ?        00:00:00 nginx: master process nginx
root     21417 21416  0 15:58 ?        00:00:00 nginx: worker process
root     21636 12873  0 16:15 pts/0    00:00:00 grep --color=auto nginx

#nginx.pid.oldbin文件也没有了

ll /usr/local/nginx/logs/ 
-rw-r--r-- 1 root root 8848003 1月   2 15:59 access.log
-rw-r--r-- 1 root root 2090148 1月   2 15:59 error.log
-rw-r--r-- 1 root root       6 1月   2 15:58 nginx.pid

#查看nginx升级后的版本

nginx -v
nginx version: nginx/1.24.0

标签:00,访问,--,root,平滑,nginx,usr,local
From: https://blog.51cto.com/chengdumeiyouni/9071190

相关文章

  • 【深信服AF】如何禁止PC访问自身80端口
    问题描述AF没有开启认证功能,但是访问AF的80端口的时候发现会访问到认证界面,出于安全性需要关闭80端口处理过程新增应用控制策略,源区域和目标区域均选择所有路由区域,并且目标IP选择AF设备自身的IP,服务选择预定义服务HTTP,实现拒绝访问AF80端口。或者可以通过做目的地址转换将访问AF设......
  • kubernetes 集群 oom 导致集群无法访问
    现象执行kubectlgetnode无法获取集群状态。日志截图:查看message日志,发现报错存在OOM,并与应用测试的容器相关,截图如下:分析首先,定位最初的oom发生的时间点,是2023年12月15日,如图按照正常逻辑来讲,应用实例做了limit限制,如果应用超出内存限制,应该被杀掉并且进行重新调度。进一步......
  • 如何部署Tale博客网站并发布个人站点到公网随时随地远程访问?
    文章目录前言1.Tale网站搭建1.1检查本地环境1.2部署Tale个人博客系统1.3启动Tale服务1.4访问博客地址2.Linux安装Cpolar内网穿透3.创建Tale博客公网地址4.使用公网地址访问Tale前言今天给大家带来一款基于Java语言的轻量级博客开源项目——Tale,Tale使用轻量级mvc框架Bl......
  • Ubuntu系统如何安装SVN服务端并通过客户端无公网ip实现远程访问?
    文章目录前言1.Ubuntu安装SVN服务2.修改配置文件2.1修改svnserve.conf文件2.2修改passwd文件2.3修改authz文件3.启动svn服务4.内网穿透4.1安装cpolar内网穿透4.2创建隧道映射本地端口5.测试公网访问6.配置固定公网TCP端口地址6.1保留一个固定的公网TCP端口地址6.2配......
  • 【C++】STL 容器 - set 集合容器 ⑥ ( pair 对组简介 | pair 对组元素访问 | set 集合
    文章目录一、pair对组1、pair对组简介2、pair对组元素访问3、代码示例-pair对组4、set集合容器存储pair对组元素二、set集合容器insert插入结果类型-pair对组1、std::set#insert函数原型分析2、代码示例-std::set#insert函数插入元素结果分析一、pair对组1......
  • K8s攻击案例:Dashboard未授权访问
    Dashboard在配置不当情况下有可能会产生未授权访问的情况,从而有可能进一步造成接管集群。(1)攻击场景在deployment中开启enable-skip-login,那么就可以在登录界面点击跳过登录进dashboard。将默认的Kubernetes-dashboard绑定cluster-admin,拥有管理集群管权限kubectlcreatecl......
  • 使用 chroot 监狱限制 SSH 用户访问指定目录
    使用chroot监狱限制SSH用户访问指定目录将SSH用户会话限制访问到特定的目录内,特别是在web服务器上,这样做有多个原因,但最显而易见的是为了系统安全。为了锁定SSH用户在某个目录,我们可以使用chroot机制。在诸如Linux之类的类Unix系统中更改root(chroot)是将特定用户操......
  • TLS SNI(TLS Server Name Indication)配置:F5、Nginx和IIS
    TLSServerNameIndication(TLSSNI)TLSServerNameIndication(TLSSNI),usedwhenasinglevirtualIPserverneedstohostmultipledomains.TLSSNISupport即一个IP地址上支持多个域名的SSL站点,或者说一个IP上支持绑定多个SSL证书。支持TLSSNI的浏览器Brows......
  • 在Python中,部署API接口通常涉及使用一个Web框架,将你的Python代码转换为可以通过HTTP请
    使用Gunicorn运行Flask应用相对简单。首先,确保已经安装了Gunicorn和Flask(如果还没有安装的话)。步骤:步骤1:安装Gunicornpipinstallgunicorn步骤2:准备你的Flask应用确保你的Flask应用(比如 app.py 文件)已经创建并且可以通过Flask的开发服务器运行。步骤3:使......
  • 部署Python Flask应用到服务器上,你可以选择多种方式,这里我将介绍使用Gunicorn和Nginx
    部署PythonFlask应用到服务器上,你可以选择多种方式,这里我将介绍使用Gunicorn和Nginx的方法。以下是部署步骤:安装Gunicorn:Gunicorn是一个PythonWSGIHTTP服务器,你可以使用pip进行安装:pipinstallgunicorn运行你的应用:使用Gunicorn运行你的Flask应用:gunicorn-w4app:app这里,-w4......