Parece que o problema , por assim dizer, foi uma suposição errada de que um serviço systemd respeita o ulimit configurado em /etc/security/limits.conf
.
Como acontece, um daemon configurado via systemd ignora intencionalmente as configurações no limits.conf e requer uma configuração LimitNOFILE
no arquivo de configuração do serviço.
A atualização do arquivo de unidade do meu systemd corrigiu o problema:
/lib/systemd/system/nginx.service
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --signal QUIT --retry QUIT/5 --pidfile /run/nginx.pid
# Give Passenger a chance to clean up before being killed by systemd.
ExecStop=/bin/sleep 1
TimeoutStopSec=5
KillMode=mixed
LimitNOFILE=30000 # <= This line was added
[Install]
WantedBy=multi-user.target
Veja alguns links e recursos relacionados a esse problema:
Obrigado a @ ijaz-khan por me apontar nessa direção.