Zaplanuj gniazda proxy NGINX, zanim podniesiesz worker_connections
Połączenie przez proxy zwykle zajmuje gniazdo klienta i gniazdo upstream; odróżnij limit połączeń workera od limitu deskryptorów plików usługi.
Jedno długotrwałe połączenie przez proxy zajmuje zwykle dwa gniazda: klienta i upstream. worker_connections liczy obie strony. Pomnożenie go przez worker_processes nie daje więc obietnicy przepustowości dla użytkowników proxy.
Gdy połączenia zawodzą, postępuj zgodnie z zgłoszonym limitem:
| Dowód | Ustawienie lub stan procesu do sprawdzenia |
|---|---|
| wyczerpanie worker_connections | Budżet połączeń workera, łącznie z gniazdami upstream |
| Komunikat systemu „Zbyt wiele otwartych plików” | Limit deskryptorów plików dziedziczony przez rzeczywisty proces usługi |
Gniazda nasłuchujące, logi i inne otwarte pliki również zużywają deskryptory. Ponowne użycie połączeń i mieszanka ruchu zmieniają relację między użytkownikami a gniazdami.
worker_rlimit_nofile dostraja limity workera w granicach uprawnień środowiska. Jednostka systemd może ustawić LimitNOFILE; ulimit w powłoce interaktywnej nie zmienia działającej usługi.
Dobierz limity do obciążenia i sprawdź, kto je zużywa. Nieoczekiwani klienci lub wielokrotnie zawodzące połączenia upstream mogą wyczerpać wcześniej wystarczający budżet. Większa liczba procesów lub limit pamięci nie naprawia braku deskryptorów.