Il web server serve da solo i file statici e passa le richieste PHP a PHP-FPM tramite un socket Unix o una porta TCP. Ogni pool ha impostazioni, utente e limiti propri, così più applicazioni restano ben separate.
Il parametro chiave è pm.max_children: limita quante richieste girano in parallelo. Troppo basso e le richieste si accodano (nel log: server reached pm.max_children setting). Troppo alto e la RAM finisce, finché l'OOM killer inizia a terminare processi.
Regola pratica: RAM disponibile per PHP divisa per la memoria media di un processo. Se PHP-FPM è fermo o il percorso del socket è sbagliato, nginx risponde 502; per script troppo lunghi, 504.
Esempio
grep -E '^pm' /etc/php/8.3/fpm/pool.d/www.conf