nginx가 현재 요청을 처리하는 것과 다른 잡종을 사용하도록 만드는 방법은 무엇입니까?

nginx가 현재 요청을 처리하는 것과 다른 잡종을 사용하도록 만드는 방법은 무엇입니까?

우리 사이트에는 12개의 잡종 클러스터가 실행되고 있고 내 로컬 개발 버전에는 5개의 잡종 클러스터가 있습니다. nginx( version: nginx/1.22.0)가 앞에 위치합니다.

우리 프로세스 중 하나는 명령줄 도구인 wkhtmltopdf를 사용하여 PDF를 만듭니다. wkhtmltopdf는 웹 사이트를 호출하여 페이지를 가져온 다음 PDF로 변환합니다.

페이지에 대한 요청이 껍질을 벗긴 동일한 잡종(항상 잡종 1)으로 이동하는 경우를 제외하고는 작동합니다. 그런 다음 교착 상태가 발생합니다. 첫 번째 요청은 두 번째 요청이 완료되기를 기다리고 있지만 두 번째 요청은 첫 번째 이후 대기열에 있습니다.

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)

내 nginx 구성에서 현재 사용 중인 것과 다른 잡종을 사용하도록 노력했지만 성공하지 못했습니다. 항상 무작위로 하나를 선택하는 것처럼 보이므로 선택할 확률은 20%입니다. 같은 것, 그리고 잠그는 것. (그래도 50% 정도 되는 느낌)

관련 nginx 구성 블록은 현재 다음과 같습니다.

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;
}

나는 문제를 고칠 수 있을 것이라고 생각하면서 그들 모두를 1로 설정했지만 max_conns그렇지 않았습니다. 나는 또한 least_conn옵션을 시도했지만 두 번째 또는 세 번째 시도에서 둘 다 다시 잡종 1로 끝났습니다.

해당 내용을 읽은 후 시도했지만 round_robin오류가 발생했습니다.nginx: [emerg] unknown directive "round_robin"

어떤 조언이라도 감사드립니다.

관련 정보