惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
月光博客
月光博客
B
Blog RSS Feed
C
Check Point Blog
WordPress大学
WordPress大学
T
Tailwind CSS Blog
GbyAI
GbyAI
H
Help Net Security
Y
Y Combinator Blog
I
InfoQ
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
美团技术团队
博客园 - 三生石上(FineUI控件)
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
A
About on SuperTechFans
G
Google Developers Blog
爱范儿
爱范儿
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
U
Unit 42
人人都是产品经理
人人都是产品经理

嵌入式工程猫的博客

使用树莓派 4 和 Moonlight 串流游戏的实践 批量修改 qbittorrent-nox 内种子的 tracker 地址 把 vim 的缩进设为 4 个字符,并且 tab 自动转空格 不用 snap,在 Ubuntu 上安装 certbot 在 Ubuntu 中启用 swap - 嵌入式工程猫的博客 让 Nginx 反向代理的程序获取客户端真实 IP - 嵌入式工程猫的博客 在 Linux 中显示所有正在监听的 TCP 端口 再一次理解 C++ 中的 extern "C" 航模舵机控制及其 PWM 调制的进一步理解 - 嵌入式工程猫的博客 如何自签名带 SAN 字段的 SSL/TLS 证书 深入理解以太网网线原理 - 嵌入式工程猫的博客 FreeBSD vs Linux:哪个开源操作系统更强大 - 嵌入式工程猫的博客 如何在 Markdown 中修改字体颜色 - 嵌入式工程猫的博客 如何在 ESP8266 上选用合适的引脚 - 嵌入式工程猫的博客 如何 DIY 一个苏康码与行程码“双码合一”的健康码 APP - 嵌入式工程猫的博客 我两周就写了三行代码 - ARM Cortex A9 中断与浮点数运算、FPU 问题 随便聊聊最近在本站折腾的那些东西 - 嵌入式工程猫的博客 分享一下我的家庭网络布局 - 嵌入式工程猫的博客 Mapuino - 一个硬件极客风的 WEB 访客地图显示摆件 Topuino - 你愿意在办公桌上放一个监控服务器的小摆件吗? - 嵌入式工程猫的博客
维护 Nginx 时,什么时候应该用 reload,什么时候应该用 rest...
2024-10-06 · via 嵌入式工程猫的博客

本文是“攻玉计划”的一部分,翻译自 https://stackoverflow.com/questions/13525465/when-to-restart-and-not-reload-nginx/20215497

问题描述

使用 Nginx 时,什么情况下 reload 无法满足需求,而必须要使用 restart 命令呢?

如果 Nginx 进程占用了过多内存,是不是应该用 restart 来重启?如果修改了 Nginx 的核心配置,或者某些插件的配置,是不是也需要使用 restart 命令?

修改 Nginx 配置后,用户既可以使用 restart 也可以使用 reload 来使配置生效,见 Ubuntu 上 /etc/init.d/nginx -h 的输出。

那么,哪种方案更优呢?

回答 1

reload 比 restart 更安全,因为如果使用 reload 命令,在旧的进程终止之前,Nginx 会先解析配置文件,如果配置文件有问题,那么就会退出重启流程。

也就是说,如果你的配置文件有问题,比如存在语法错误,那么使用 restart 命令后,Nginx 会先停止,然后就无法再启动了。

reload 命令如果成功执行,同样会终止旧的进程,所以如果存在内存泄漏问题,也一样可以清除掉。

回答 2 & 3

我遇到过一种情形,如果我修改了监听的 IP 地址,也就是配置文件里的 listen 字段,那就必须使用 restart 命令。

从 1.6.x 版本开始,如果仅把监听的 IP 地址从一个改为另一个,那么 reload 可以生效,但如果把监听地址从 listen *:80 修改为 listen x.x.x.x:80,依然需要 restart。

我只验证了 IPv4 的场景,IPv6 应该类似。

译者按:译者今天遇到过一样的问题,我修改了 listen 80; listen 172.0.0.1:80,结果发现 reload 不生效,必须 restart。