¿Cómo hacer que nginx use un mestizo diferente al que maneja la solicitud actual?

¿Cómo hacer que nginx use un mestizo diferente al que maneja la solicitud actual?

En nuestro sitio tenemos un clúster de 12 mestizos en ejecución, y en mi versión de desarrollo local tengo un clúster de 5 mestizos. nginx ( version: nginx/1.22.0) se encuentra al frente.

Uno de nuestros procesos crea un pdf desembolsando wkhtmltopdf, una herramienta de línea de comandos, que a su vez llama al sitio web para obtener una página que luego convierte en un pdf.

Eso está funcionando, excepto que a veces la solicitud de la página va al mismo mestizo (siempre mestizo 1) que desembolsó, y luego tengo un punto muerto: la primera solicitud está esperando a que termine la segunda, pero la segunda está en cola después del primero.

Mongrel Top (delay: 0.25)                                                                                                                                                                 Fri Sep 22 16:47:59 2023

65347 sh -c start -p 3000 & mongrel_rails start -p 3001 & mongrel_rails start -p 3002 & mongrel_rails start -p 3003 & mongrel_rails start -p 3004
65348 [3000/2/11]: handling 127.0.0.1: POST /admin/school_quotes/CMS1Y-187790-107226, 127.0.0.1: GET /
65349 [3001/0/0]: idle
65350 [3002/0/0]: idle
65351 [3003/0/0]: idle
65352 [3004/0/0]: idle

6 process(es)

En mi configuración de nginx, he estado intentando que use un mestizo diferente al que está actualmente ocupado, pero sin éxito; siempre parece elegir uno al azar y, por lo tanto, tiene un 20 % de posibilidades de elegir el el mismo y cerrando. (aunque se siente más como 50%)

El bloque de configuración de nginx relevante actualmente se ve así:

upstream elrs {
  # least_conn;
  # random two;
  # round_robin;
  zone backends 128k;
  server 127.0.0.1:3000 max_conns=1 max_fails=3 fail_timeout=2;
  server 127.0.0.1:3001 max_conns=1 max_fails=3 fail_timeout=2;
  server 127.0.0.1:3002 max_conns=1 max_fails=3 fail_timeout=2;
  server 127.0.0.1:3003 max_conns=1 max_fails=3 fail_timeout=2;
  server 127.0.0.1:3004 max_conns=1 max_fails=3 fail_timeout=2;
}

Puse max_conns1 en todos ellos pensando que eso podría solucionarlo, pero no fue así. También probé la least_connopción, pero la segunda o tercera vez que lo intenté ambas terminaron nuevamente en mestizo 1.

Lo intenté round_robindespués de leer sobre esto pero aparece un error.nginx: [emerg] unknown directive "round_robin"

Se agradece cualquier consejo, gracias.

información relacionada