Il s'agit de ma première expérience d'administration de serveur Web et je souhaite créer un conteneur Docker qui utilise nginx comme serveur Web. Dans tout tutoriel docker daemon off;
L'option est placée dans _ .conf
fichier mais l'explication à ce sujet est omise.
Je recherche sur Internet à ce sujet et je ne comprends pas quelle est la différence entre daemon on;
et daemon off;
options. Certaines personnes ont mentionné que daemon off;
est pour la production, pourquoi?
Pouvez-vous expliquer quelle est la différence entre ces deux options et pourquoi je devrais utiliser daemon off;
en production?
Pour une production normale (sur un serveur), utilisez la valeur par défaut daemon on;
directive pour que le serveur Nginx démarre en arrière-plan. De cette façon, Nginx et d'autres services s'exécutent et se parlent. Un serveur exécute de nombreux services.
Pour les conteneurs Docker (ou pour le débogage), le daemon off;
la directive dit à Nginx de rester au premier plan. Pour les conteneurs, cela est utile car la meilleure pratique est pour un conteneur = un processus. Un serveur (conteneur) n'a qu'un seul service.
Réglage daemon off;
est également utile s'il existe un outil tiers comme Superviseur contrôlant vos services. Le superviseur vous permet d'arrêter/démarrer/obtenir le statut de groupes de services à la fois.
J'utilise daemon off;
pour peaufiner ma configuration Nginx, puis tuer proprement le service et le redémarrer. Cela me permet de tester rapidement les configurations. Une fois terminé, j'utilise la valeur par défaut daemon on;
.
Comme mentionné dans this SO thread , il apparaît que "ce processus initial engendre immédiatement un processus maître nginx et certains travailleurs, puis se ferme. Puisque Docker ne regarde que le PID de la commande d'origine, le conteneur s'arrête. "
En ce qui concerne la daemon off
directive , il semble qu'il était à l'origine destiné au développement de code nginx, bien qu'il soit sûr pour la production après la version 1.0.9, selon la FAQ .