worker_connections în Nginx

Performanță și PHP Toate versiunile Nginx

Numărul maxim de conexiuni simultane pe care le poate deschide fiecare proces worker, inclusiv conexiunile spre serverele din spate.

Sintaxă
events {
    worker_connections număr;
    multi_accept on | off;
}

Ce face worker_connections

worker_connections se scrie în blocul events și limitează conexiunile deschise simultan de un worker. Numărul total aproximativ de clienți serviți simultan este worker_processes × worker_connections.

Limita include toate conexiunile, nu doar pe cele cu vizitatorii: la reverse proxy, fiecare vizitator folosește o conexiune spre client și una spre aplicația din spate, deci capacitatea efectivă este cam la jumătate.

Când limita este atinsă, Nginx scrie în jurnalul de erori worker_connections are not enough și refuză conexiuni noi. Limita de fișiere deschise a sistemului (ulimit -n sau worker_rlimit_nofile) trebuie să fie cel puțin la fel de mare.

Parametri

Parametru Descriere
Context events.
Implicit worker_connections 512;
multi_accept Implicit off. on = un worker acceptă toate conexiunile noi deodată.

Ce returnează

Nimic; se aplică la pornire sau la reîncărcare.

Exemple

Exemplul 1: Server cu trafic mare

worker_processes auto;
worker_rlimit_nofile 65535;

events {
    worker_connections 8192;
    multi_accept on;
}

Exemplul 2: Limita atinsă în timpul unui vârf de trafic

grep 'not enough' /var/log/nginx/error.log | tail -n 1

Ieșire în terminal

2026/10/25 20:14:52 [alert] 814#814: 1024 worker_connections are not enough

Exemplul 3: Limita sistemului mai mică decât worker_connections

Lipsește worker_rlimit_nofile, iar limita implicită de fișiere deschise este 1024.

sudo nginx -t

Ieșire în terminal

nginx: [warn] 8192 worker_connections exceed open file resource limit: 1024
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Greșeli frecvente

  • Ridici worker_connections la 65535 fără să ridici limita de fișiere deschise: avertismentul de la nginx -t arată problema.
  • Calculezi capacitatea fără să ții cont că la proxy fiecare vizitator folosește două conexiuni.

Comenzi înrudite

  • worker_processes: Stabilește câte procese worker pornește Nginx. Valoarea auto pornește câte unul pentru fiecare nucleu de procesor.
  • keepalive_timeout: Cât timp păstrează Nginx deschisă o conexiune inactivă cu clientul, ca următoarele cereri să nu mai deschidă una nouă.