Question Pourquoi «multi_accept» est-il désactivé par défaut dans Nginx?


J'ai trouvé que «multi_accept» est désactivé (par défaut) dans Nginx, comme suit:

multi_accept


9
2018-03-14 13:07


origine




Réponses:


Probablement parce que avec on, tous les processus de travail sont actifs et essaient de gérer simultanément toutes les demandes entrantes. Lorsqu'il est désactivé, Nginx décide quel processus enfant doit traiter la demande un par un. Comme Nginx est très efficace, cela sert probablement la plupart des gens. Certains considèrent qu'il est risqué de l'activer, car cela pourrait inonder les connexions des travailleurs avec des demandes. Vos paramètres TCP au niveau du système d'exploitation joueront probablement un rôle dans ce domaine également.


6
2018-03-15 16:02



J'ai eu la situation exacte. J'avais essayé de savoir ce que font les commandes automatiques worker_rlimit_nofile, worker_connections et worker_processes. Nginx est un proxy inverse pour une application qui accepte les websockets. Nginx config permet 50 connexions pour chaque travailleur. Lorsque j'ai deux travailleurs (par conséquent, 100 connexions doivent être établies) et que multi_accept est activé, un message d'erreur indiquant que les Websockets ne peuvent pas être créés (le travailleur qui a déjà 50 connexions l'essaie ...). Lorsque multi_accept est désactivé, tout fonctionne parfaitement. - Hamburml