当前位置: 首页 > news >正文

2025.6.5学习日记 Nginx主目录文件 .conf介绍、热部署 定时日志切割

Nginx

主目录文件功能介绍

nginx.conf(唯一配置文件):

  • nginx.conf是由指令和指令块组成

  • 每一行语句由分号结束,指令和参数之间是有空格分离的

  • 指令块由大括号{}组织多条语句

  • nginx.conf使用#表示注释符

  • nginx.conf也支持$变量名命名语法

  • nginx支持include语句(引入其它文件的配置)进行组合多个配置文件 (必须以conf结尾)

  • shift+数字5 索引括号

netstat -tunlp:查看网络连接和端口监听信息

 

定义运行工作模式:

#keepalive:超时时间 (超时多久自动断开)

keepalive_timeout 60;

静态资源压缩功能:

Server块

 

nginx命令选项:

nginx-master信号传递:

1.master主进程是不处理请求的,而是分配请求发给worker进程,主进程负责重启,热加载,热部署等等
2.master是根据nginx.conf中worker_process定义启动时创建的工作进程数
3.当worker运行后,master就处于一个等待的状态,等待用户的请求来临,或者系统信号
4.系统管理员可以发送kill指令,或者nginx-s信号,这样的形式操控nginx 

nginx信号功能:

 

nginx.conf重要的指令块:

核心功能都在于http{}指令块里,http{}块还包含了以下指令:

  • server{}指令块,对应一个站点配置,反向代理,静态资源站点

  • location{},对应一个url

  • upstream{},定义上游服务,负载均衡池

nginx的热部署:

usr2信号:

平滑升级 Nginx 二进制文件:在不中断服务的情况下,将运行中的 Nginx 进程升级到新版本。

重新加载配置文件:与 HUP 信号不同,USR2 会保留旧版本进程,便于回滚。

WINCH信号:

平滑关闭工作进程:在升级或配置重载时,逐步关闭旧工作进程,避免中断现有连接。

不影响主进程:仅关闭工作进程,主进程继续运行。

场景 1:平滑升级 Nginx
# 1. 备份旧二进制文件和PID文件
cp /usr/sbin/nginx /usr/sbin/nginx.old
mv /var/run/nginx.pid /var/run/nginx.pid.oldbin
​
# 2. 替换新二进制文件
cp /path/to/new/nginx /usr/sbin/nginx
​
# 3. 发送USR2启动新主进程
kill -USR2 $(cat /var/run/nginx.pid.oldbin)
​
# 4. 确认新进程正常工作后,发送WINCH关闭旧工作进程
kill -WINCH $(cat /var/run/nginx.pid.oldbin)
​
# 5. 若升级失败,回滚到旧版本
kill -HUP $(cat /var/run/nginx.pid.oldbin)  # 恢复旧工作进程
kill -QUIT $(cat /var/run/nginx.pid)        # 关闭新主进程

场景 2:逐步重启工作进程(不升级)
# 1. 发送USR2创建新主进程(使用相同二进制文件)
kill -USR2 $(cat /var/run/nginx.pid)
​
# 2. 关闭旧工作进程
kill -WINCH $(cat /var/run/nginx.pid.oldbin)
​
# 3. 确认无误后,关闭旧主进程
kill -QUIT $(cat /var/run/nginx.pid.oldbin)

Nginx日志切割:

日志切割是线上很常见的操作,能够控制单个日志文件的大小,便于对日志进行管理

       6.把该脚本的执行,加入crontab 每天0点自动执行
       crontab -e #打开定时任务
       分 时 日 月 周 用绝对路径bin/bash解释器 运行脚本
       
       0 0 * * * /bin/bash /scripts/cut_nginx_log.sh
       

http://www.xdnf.cn/news/909721.html

相关文章:

  • Abaqus有限元应力集中
  • Odoo 19 路线图(新功能)
  • C++课设:考勤记录系统
  • 三、元器件的选型
  • 常用枚举技巧:基础(一)
  • QGraphicsView、QGraphicsScene和QGraphicsItem图形视图框架(八)QGraphicsProxyWidget的使用
  • CPP基础
  • Go 并发编程基础:通道(Channel)的使用
  • C语言的全称:(25/6/6)
  • Python应用break初解
  • $attrs 与 $listeners 透传
  • 实战:用 i.MX8MP 读取 220V 电流信息的完整方案(HLW8032 接入)
  • 华科:视觉大模型动态剪枝框架FlowCut
  • onSaveInstanceState() 和 ViewModel 在数据保存能力差异
  • nginx的安装
  • 《100天精通Python——基础篇 2025 第5天:巩固核心知识,选择题实战演练基础语法》
  • 软件测评服务如何依据标准确保品质?涵盖哪些常见内容?
  • SQLAlchemy 中的 func 函数使用指南
  • [密码学实战]C语言使用SDF库构建国密算法RESTful服务(五)
  • janus客户端源码分析
  • 【计算机网络】非阻塞IO——poll实现多路转接
  • AIGC 基础篇 Python基础 01
  • 使用阿里云百炼embeddings+langchain+Milvus实现简单RAG
  • PCB设计教程【大师篇】——STM32开发板电源设计(LDO、DCDC)
  • 深入Kubernetes源码阅读指南:从环境搭建到核心原理剖析
  • 【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
  • 在 Caliper 中执行不同合约的方法
  • Varjo如何帮助Entrol最大化其XR模拟器的性能
  • 探索GIS局部放电监测:PRPD与PRPS图谱的奥秘
  • 好子集的数目之解决方案