Que faire si une erreur se produit lors de l'utilisation de nginx lorsque le nombre de connexions dépasse 1024?
sobes.tech IA
Réponse de l'IA
Cela indique une limitation du nombre de descripteurs de fichiers ouverts.
Solutions:
-
Augmenter
worker_connectionsdans la configuration de Nginx :// Augmenter le nombre maximum de connexions par processus worker events { worker_connections 4096; // ou plus, selon les besoins et ressources } -
Augmenter la limite des fichiers ouverts au niveau du système d'exploitation :
- Pour la session utilisateur actuelle :
# Augmenter temporairement la limite de fichiers ouverts ulimit -n 65536 - Pour tout le système (de façon permanente) :
Modifier le fichier
/etc/security/limits.conf. Ajouter des lignes :(Remplacer# Limites spécifiques à l'utilisateur nginx soft nofile 65536 nginx hard nofile 65536 # Alternativement, pour tous les utilisateurs # * soft nofile 65536 # * hard nofile 65536nginxpar le nom de l'utilisateur sous lequel Nginx s'exécute, si différent.) Il est nécessaire de redémarrer le système ou de se reconnecter pour appliquer les changements, ou d'exécutersysctl -p.
- Pour la session utilisateur actuelle :
-
Vérifier les paramètres globaux du noyau : S'assurer que
fs.file-maxest suffisamment élevé.# Vérifier la valeur actuelle cat /proc/sys/fs/file-max # Définir une nouvelle valeur (temporairement) # sudo sysctl -w fs.file-max=100000 # Définir une nouvelle valeur (de façon permanente) - éditer /etc/sysctl.conf # Ajouter la ligne : fs.file-max = 100000 # Appliquer les changements # sudo sysctl -p -
S'assurer que l'utilisateur Nginx a le droit d'ouvrir autant de fichiers : Vérifier sous quel utilisateur Nginx s'exécute et quels limites sont fixées pour cet utilisateur. Cela est lié au point 2.
-
Redémarrer Nginx : Après avoir modifié la configuration de Nginx ou les limites système, il faut le redémarrer.
# Redémarrer Nginx sudo systemctl reload nginx # Ou, si cela ne fonctionne pas # sudo systemctl restart nginx
Priorité dans la résolution :
- Vérifier et augmenter
worker_connections. - Vérifier et augmenter les limites de descripteurs de fichiers pour l'utilisateur Nginx.
- Vérifier et augmenter la limite globale
fs.file-max. - Redémarrer Nginx.
Il est important de rappeler que l'augmentation des limites doit être justifiée et en rapport avec les ressources disponibles du serveur (mémoire, CPU). Des valeurs trop élevées peuvent entraîner une instabilité du système.