
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_conns
1 en todos ellos pensando que eso podría solucionarlo, pero no fue así. También probé la least_conn
opción, pero la segunda o tercera vez que lo intenté ambas terminaron nuevamente en mestizo 1.
Lo intenté round_robin
después de leer sobre esto pero aparece un error.nginx: [emerg] unknown directive "round_robin"
Se agradece cualquier consejo, gracias.