nginx 守护进程开/关选项有啥区别?
Posted
技术标签:
【中文标题】nginx 守护进程开/关选项有啥区别?【英文标题】:What is the difference between nginx daemon on/off option?nginx 守护进程开/关选项有什么区别? 【发布时间】:2014-11-16 05:17:14 【问题描述】:这是我的第一次网络服务器管理经验,我想构建使用 nginx 作为网络服务器的 docker 容器。在所有 docker 教程中,daemon off;
选项被放入主 .conf
文件中,但省略了有关它的解释。
我在互联网上搜索它,但我不明白daemon on;
和daemon off;
选项之间有什么区别。有人提到daemon off;
是用于生产的,为什么?
你能解释一下,这两个选项有什么区别,为什么我应该在生产中使用daemon off;
?
【问题讨论】:
【参考方案1】:正如this SO thread 中提到的,似乎“该初始进程立即产生了一个主 nginx 进程和一些工作人员,然后退出。由于 Docker 只监视原始命令的 PID,因此容器随后停止。”
关于daemon off
directive,根据FAQ,它似乎最初是为 nginx 代码开发而设计的,但对于生产发布版本 1.0.9 来说是安全的。
【讨论】:
【参考方案2】:对于正常生产(在服务器上),使用默认的daemon on;
指令,这样 Nginx 服务器将在后台启动。以这种方式,Nginx 和其他服务正在运行并相互交谈。一台服务器运行许多服务。
对于 Docker 容器(或调试),daemon off;
指令告诉 Nginx 留在前台。对于容器,这很有用,因为最佳实践是一个容器 = 一个进程。一台服务器(容器)只有一项服务。
如果有像Supervisor 这样的第三方工具控制您的服务,设置daemon off;
也很有用。 Supervisor 允许您一次停止/启动/获取一组服务的状态。
我使用daemon off;
来调整我的 Nginx 配置,然后彻底终止服务并重新启动它。这让我可以快速测试配置。完成后,我使用默认的daemon on;
。
【讨论】:
如何在 docker 上动态重新加载配置为“daemon off”的 nginx? 这似乎是正确的答案,应该打勾。以上是关于nginx 守护进程开/关选项有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章