2014-09-22 433 views
9

這是我的第一個Web服務器管理經驗,我想構建使用nginx作爲Web服務器的docker容器。在全部碼頭教程daemon off;選項被放入主文件.conf文件但是關於它的說明被省略。nginx守護進程開啓/關閉選項有什麼區別?

我在網上搜索了一下,我不明白daemon on;daemon off;選項之間有什麼區別。有人提到daemon off;是爲了生產,爲什麼?

你能解釋一下,這兩個選項有什麼區別,爲什麼我在生產中應該使用daemon off;

回答

3

正如在this SO thread中提到的那樣,看起來「該初始化過程立即產生了一個主nginx進程和一些工作者,然後退出,因爲Docker只看到原始命令的PID,那麼容器就會停止。

關於daemon off directive,它看起來最初是爲nginx代碼開發而設計的,但對於生產後版本1.0.9,根據FAQ是安全的。

21

對於正常生產(在服務器上),請使用默認的daemon on;指令,以便Nginx服務器將在後臺啓動。通過這種方式,Nginx和其他服務正在運行並相互交流。一臺服務器運行許多服務。

對於碼頭集裝箱(或調試),daemon off;指令告訴Nginx留在前臺。對於容器,這是有用的,因爲最佳做法是對於一個容器=一個過程。一臺服務器(容器)只有一項服務。

如果有第三方工具如Supervisor控制您的服務,則設置daemon off;也很有用。 Supervisor可讓您一次停止/啓動/獲取一批服務的狀態。

我使用daemon off;來調整我的Nginx配置,然後乾淨地終止服務並重啓它。這使我可以快速測試配置。完成後,我使用默認的daemon on;