Dê uma olhada no módulo limit_conn . Embora todos os exemplos que encontrei tenham sido limitados por IP remoto, se você passar uma constante para limit_conn_zone em vez do IP remoto, você estará limitando o total de conexões ao servidor.
Algo parecido com isto:
upstream myservice {
server 127.0.0.1:80;
server 123.123.123.123:80;
}
set $const 1;
limit_conn_zone $const zone=one:1m;
location / {
limit_conn one 10;
proxy_pass http://myservice;
proxy_set_header Host myservice;
}
Editar: Parece que este módulo só está disponível em versões mais recentes do nginx (possivelmente > = v1.1.8). Talvez seja necessário compilar a partir da fonte, se você quiser usar essa opção e tiver uma versão mais antiga do nginx.
Editar 2: Se o seu nginx estiver apenas fazendo tarefas de proxy, dê uma olhada em worker_connections