Čo robiť, ak pri práci s nginx dôjde k chybe pri prekročení 1024 spojení?
sobes.tech AI
Odpoveď od AI
Toto naznačuje obmedzenie počtu otvorených súborových deskriptorov.
Riešenia:
-
Zvýšenie
worker_connectionsv konfigurácii Nginx:// Zvýšime maximálny počet spojení na jeden worker proces events { worker_connections 4096; // alebo viac, v závislosti od potrieb a zdrojov } -
Zvýšenie limitu otvorených súborov na úrovni operačného systému:
- Pre aktuálnu reláciu používateľa:
# Dočasne zvýšime limit otvorených súborov ulimit -n 65536 - Pre celý systém (trvalo):
Upraviť súbor
/etc/security/limits.conf. Pridať riadky:(Nahradiť# Limity pre špecifického používateľa nginx soft nofile 65536 nginx hard nofile 65536 # Alternatívne, pre všetkých používateľov # * soft nofile 65536 # * hard nofile 65536nginxmenom používateľa, pod ktorým beží Nginx, ak je iné.) Je potrebné reštartovať systém alebo sa odhlásiť a prihlásiť znova, alebo vykonaťsysctl -p.
- Pre aktuálnu reláciu používateľa:
-
Kontrola globálnych nastavení jadra: Uistiť sa, že
fs.file-maxje dostatočne vysoké.# Skontrolovať aktuálnu hodnotu cat /proc/sys/fs/file-max # Nastaviť novú hodnotu (dočasne) # sudo sysctl -w fs.file-max=100000 # Nastaviť novú hodnotu (trvalo) - upraviť /etc/sysctl.conf # Pridať riadok: fs.file-max = 100000 # Aplikovať zmeny # sudo sysctl -p -
Uistiť sa, že používateľ Nginx má právo otvárať toľko súborov: Skontrolovať, pod ktorým používateľom beží Nginx a aké limity má pre tohto používateľa. Toto súvisí s bodom 2.
-
Reštartovať Nginx: Po vykonaní zmien v konfigurácii Nginx alebo systémových limitoch je potrebné ho reštartovať.
# Reštart Nginx sudo systemctl reload nginx # Alebo, ak to nepomohlo # sudo systemctl restart nginx
Priorita v riešení:
- Skontrolovať a zvýšiť
worker_connections. - Skontrolovať a zvýšiť limity súborov pre používateľa Nginx.
- Skontrolovať a zvýšiť globálny limit
fs.file-max. - Reštartovať Nginx.
Dôležité je pamätať, že zvýšenie limitov by malo byť odôvodnené a v súlade s dostupnými zdrojmi servera (pamäť, CPU). Príliš vysoké hodnoty môžu viesť k nestabilite systému.