nginx重新整理——————热部署和日志切割[三]
前言
简单演示热部署和日志切割。
正文
什么是热部署了,我们前文也说过了一个编译后的nginx 二进制。
热部署就是无需停止现有的nginx,替换正在运行的nginx。
步骤:
复制nginx 二进制替换掉原先的nginx文件。
kill -USR2 13195 给nginx 发送信号

这里出现了另外一个master。
3.发送WINCH信号给旧的master进程,让旧的master进程优雅的退出
kill -WINCH cat /opt/nginx/logs/nginx.pid.oldbin
退出woker。
4.此时如果觉得nginx服务一切正常,就可以干掉旧的master主进程了
kill -9 cat /opt/nginx/logs/nginx.pid.oldbin
退出master
- 如果替换有问题呢?那么怎么办?
nginx 回滚:
cp nginx.old nginx
打开旧的worker进程号:
kill -HUP 4810
``
其中 pid 是进程标识。如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。
关闭新的worker:
kill -WINCH 16940
下面介绍一下nginx 的日志切割。
LOGS_PATH = /usr/local/optnresty/nginx/logs/histoty
CUR_LOGS_PATH = /usr/local/openresty/nginx/logs
YESTEDAY = $(date -d "yesterday" +%Y-%m-%d)
mv ${CUR_LOGS_PATH }/xxx_access.log ${LOGS_PATH }/xxx_access_${YESTEDAY}.log
mv ${CUR_LOGS_PATH }/xxx_error.log ${LOGS_PATH }/xxx_error_${YESTEDAY}.log
kill -USR1 $(cat /usr/local/openresty/nginx/logs/nginx.pid)
这样就可以了,其实后面那个就是nginx -s reopen,从新打开日志。
然后把这个cron 定时任务,比如每天0:00,这样就可以了。
### 结
下一节静态服务和反向代理。
nginx重新整理——————热部署和日志切割[三]的更多相关文章
- Nginx 热部署和日志切割,你学会了吗?
上篇文章,我们已经安装好 Nginx,并且配置好 Nginx 文件后,这个时候我就需要操作 Nginx 的命令行了,这篇文章主要讲解 Nginx 命令行相关知识,并通过日常遇到的热部署.切割日志文件场 ...
- nginx命令行及演示:重载、热部署、日志切割
重载配置文件 nginx -s reload 热部署(升级nginx) 首先备份二进制文件 cp nginx nginx.old 拷贝新版本的nginx替换以前的nginx二进制文件 cp ngi ...
- Nginx系列p2:重载,热部署,日志分割
今天我们来学习 nginx 的 重载.热部署.日志分割功能 重载:当我们需要修改配置文件中的一些值,我们可以直接修改该配置文件,然后重新启动 nginx 服务,就可以实现在 nginx 不停止服务的情 ...
- nginx学习笔记(四)-----日志切割脚本及定时任务
一.日志切割脚本 #!/bin/sh #nginx目录 BASE_DIR=/usr/local/nginx #生成的日志 BASE_FILE_NAME=jonychen.access.log CURR ...
- SpringBoot 之 视图解析与模板引擎、 热部署、日志配置(四)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一 . SpringBoot环境下的视图解析技术 1. JSP JSP 是我们常用的视图技术了,但是Sp ...
- MongoDB 日志切割三种方式
MongoDB 日志切割 MongoDB 默认是不会进行切割日志的,除非我们配置了 logRotate = rename,并且重启 MongoDB 服务,才会进行切割日志的,那么为了避免实际中我们 ...
- nginx原声方法按照每天日志切割保存
首先配置日志变量,然后配置日志 在/etc/nginx/conf.d/default.conf 配置变量 server{ if ($time_iso8601 ~ "^(\d{4})-(\d{ ...
- IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(三)
pom.xml中repositories.pluginRepository的作用 pom.xml中repositories标签的作用是: 用来配置maven项目的远程仓库.示例如下: <repo ...
- Nginx热部署 平滑升级 日志切割
1.重载 修改nginx配置文件之后,在不影响服务的前提下想加载最新的配置,就可以重载配置即可. 操作如下: 1)修改nginx配置文件 2)nginx -t 检查nginx文件语法是否有误 ...
- 持续集成环境--Tomcat热部署导致线程泄漏
一.问题由来 我们组用jenkins部署了持续集成环境,(jenkins部署war包到远程服务器的tomcat). 每次提交了代码,jenkins上一键构建,就可以自动拉取最新代码,打war包,热部署 ...
随机推荐
- mysql-对应删除 dict 脚本
-- 1. 此 dict 是在不同租户下的数据字典,查询时需要根据 departid 进行分类查询 -- 2. 删除dict, dict分类主表类型与挂载的子表数据 -- 3. 通过查询到的主表的 g ...
- Jmeter 之 forEach控制器
1 添加方法: 线程组右键-> 添加 -> 逻辑控制器 ->ForEach控制器 2 作用: 可以更方便JMeter后置处理器提取出来的多组数据,也可以定义具有特定规则的数据,用 ...
- rust简要笔记
第一个程序, 我们不用安装编辑器,直接在现成的网页编辑器上运行 https://play.rust-lang.org/
- Sub-process /usr/bin/dpkg returned an error code (1)问题
在用apt-get安装软件包的时候遇到E: Sub-process /usr/bin/dpkg returned an error code (1)问题,解决方法如下: cd /var/lib/dpk ...
- Python isinstance() 函数含义及用法解析
描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关 ...
- 05.java多线程问题
目录介绍 5.0.0.1 线程池具有什么优点和缺点?为什么说开启大量的线程,会降低程序的性能,那么该如何做才能降低性能? 5.0.0.3 线程中start和run方法有什么区别?wait和sleep方 ...
- 【Leetcode】300. 最长递增子序列
题目(链接) 给你一个整数数组nums,找到其中最长严格递增子序列的长度. 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序.例如,[3,6,2,7]是数组[0,3,1 ...
- 工良出品,从零设计开发 .NET 开发框架:框架源码和教程电子书
为什么要写这个教程 在毕业之后,读者写过了大量的文章和开源项目,正是坚持一边学习一边输出,所以笔者最终从一个生菜鸡进化为一个熟菜鸡. 在程序员的成长中,我们会在思路,如何学习.如何进步,比如要成长为一 ...
- 《.NET内存管理宝典》 售后服务系列文(2) - WinDbg命令.cmdtree
此文是<.NET内存管理宝典 提高代码质量.性能和可扩展性>(英文名<Pro .NET Memory Management: For Better Code, Performan ...
- [MySQL]流程控制语句
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/17991087 出自[进步*于辰的博客] 参考笔记三,P ...