Mit tegyél, ha nginx használata közben hibát észlelsz, amikor meghaladod a 1024 kapcsolatot?
sobes.tech MI
Válasz az MI-től
Ez a nyitott fájlleírók számának korlátozására utal.
Megoldások:
-
Növelje a
worker_connectionsértékét az Nginx konfigurációjában:// A maximális kapcsolatszám növelése munkafolyamatonként events { worker_connections 4096; // vagy több, az igények és erőforrások szerint } -
Növelje a nyitott fájlok limitjét az operációs rendszer szintjén:
- A jelenlegi felhasználói munkamenethez:
# Ideiglenesen növelje a nyitott fájlok limitjét ulimit -n 65536 - Az egész rendszerre (állandóan):
Szerkessze a
/etc/security/limits.conffájlt. Adjon hozzá sorokat:(Cserélje ki az# Felhasználóspecifikus limitek nginx soft nofile 65536 nginx hard nofile 65536 # Alternatívaként, minden felhasználóra # * soft nofile 65536 # * hard nofile 65536nginx-et arra a felhasználónévre, amelyen az Nginx fut, ha más.) A változtatások alkalmazásához újra kell indítani a rendszert vagy kijelentkezni és bejelentkezni, vagy futtassa asysctl -pparancsot.
- A jelenlegi felhasználói munkamenethez:
-
A kernel globális beállításainak ellenőrzése: Győződjön meg arról, hogy a
fs.file-maxértéke elég magas.# Ellenőrizze az aktuális értéket cat /proc/sys/fs/file-max # Új érték beállítása (ideiglenes) # sudo sysctl -w fs.file-max=100000 # Új érték beállítása (állandóan) - szerkessze a `/etc/sysctl.conf` fájlt # Adja hozzá a sort: fs.file-max = 100000 # Alkalmazza a változtatásokat # sudo sysctl -p -
Győződjön meg arról, hogy az Nginx felhasználónak joga van ennyi fájlt megnyitni: Ellenőrizze, hogy melyik felhasználó futtatja az Nginx-et, és milyen limitek vannak beállítva erre a felhasználóra. Ez összefügg a 2. ponttal.
-
Indítsa újra az Nginx-et: A konfiguráció vagy a rendszerlimitek módosítása után újra kell indítani.
# Nginx újratöltése sudo systemctl reload nginx # Vagy, ha nem segít # sudo systemctl restart nginx
A megoldás prioritása:
- Ellenőrizze és növelje a
worker_connectionsértékét. - Ellenőrizze és növelje az Nginx felhasználója számára az fájlleíró limitet.
- Ellenőrizze és növelje a globális
fs.file-maxértéket. - Indítsa újra az Nginx-et.
Fontos megjegyezni, hogy a limitek növelése indokoltnak kell lennie, és összhangban kell lennie a szerver rendelkezésre álló erőforrásaival (memória, CPU). Túlságosan magas értékek instabilitáshoz vezethetnek a rendszerben.