ngx_http_upstream_conf_module

ngx_http_upstream_conf_module 모듈을 사용하면 ngnix를 다시 시작하지 않고도 간단한 HTTP 인터페이스를 통해 즉시 구성 업스트림 서버를 그룹화할 수 있습니다. http 또는 stream 서버 그룹은 공유 메모리에 있어야 합니다.

이 모듈은 1.13.10까지 상업용 구독에서 제공합니다. 1.13.3에서 ngx_http_api_module 모듈로 대체되었습니다.

예제 구성

upstream backend {
    zone upstream_backend 64k;

    ...
}

server {
    location /upstream_conf {
        upstream_conf;
        allow 127.0.0.1;
        deny all;
    }
}

Directives

Syntax:  upstream_conf;
Default: —
Context: location

주변 위치에서 업스트림 구성의 HTTP 인터페이스를 활성화합니다. 이 위치에 대한 액세스는 제한해야 합니다.

구성 명령은 다음과 같은 목적으로 사용할 수 있습니다.

  • 그룹 구성 보기
  • 서버 보기, 수정, 제거
  • 새 서버 추가

그룹 내 주소는 고유할 필요가 없으므로 그룹 내의 특정 서버는 ID로 참조합니다. 새 서버를 추가하거나 그룹 구성을 확인할 때 ID가 자동 할당되어 표시됩니다.

구성 명령은 요청 인수로 전달된 매개변수로 구성되며, 예를 들어 다음과 같습니다.

http://127.0.0.1/upstream_conf?upstream=backend

지원되는 매개변수는 다음과 같습니다.

stream=

stream 업스트림 서버 그룹을 선택합니다. 이 매개변수가 없으면 http 업스트림 서버 그룹을 선택합니다.

upstream=name

작업할 그룹을 선택합니다. 이 매개변수는 필수입니다.

id=number

조회, 수정, 제거할 서버를 선택합니다.

remove=

그룹에서 서버를 제거합니다.

add=

새 서버를 그룹에 추가합니다.

backup=

백업 서브를 추가하는 데 필요합니다.

1.7.2버전 이전에는 기존 백업 서버를 확인, 수정, 제거하는 데 backup=도 필요했습니다.

server=address

http 또는 stream 업스트림 서버의 “address” 매개변수와 동일합니다.

서버를 추가할 때 도메인 이름으로 지정할 수 있습니다. 이 경우, 도메인 이름에 해당하는 IP 주소의 변경 사항을 모니터링하고 nginx를 다시 시작할 필요 없이 업스트림 구성에 적용됩니다(1.7.2). 이를 위해서는 http 또는 stream 블록에 “resolver” 명령이 필요합니다. http 또는 stream 업스트림 서버의 “resolve” 매개변수도 참조하세요.

service=name

http 또는 stream 업스트림 서버의 “service” 매개변수와 동일합니다(1.9.13).

weight=number

http 또는 stream 업스트림 서버의 “weight” 매개변수와 동일합니다.

max_conns=number

http 또는 stream 업스트림 서버의 “max_conns” 매개변수와 동일합니다.

max_fails=number

http 또는 stream 업스트림 서버의 “max_fails” 매개변수와 동일합니다.

fail_timeout=time

http 또는 stream 업스트림 서버의 “fail_timeout” 매개변수와 동일합니다.

slow_start=time

http 또는 stream 업스트림 서버의 “slow_start” 매개변수와 동일합니다.

down=

http 또는 stream 업스트림 서버의 “down” 매개변수와 동일합니다.

drain=

http 업스트림 서버를 “드레이닝” 모드로 변경합니다(1.7.5). 이 모드에서는 서버에 대한 요청 바운드만 프록시됩니다.

up=

http 또는 stream 업스트림 서버의 “down” 매개변수와는 반대입니다.

route=string

http 업스트림 서버의 “route” 매개변수와 동일합니다.

처음 세 개의 매개변수가 객체를 선택합니다. 전체 http 또는 stream 업스트림 서버 그룹이나 특정 서버를 선택할 수 있습니다. 다른 매개변수가 없으면 선택된 그룹이나 서버의 구성이 표시됩니다.

예를 들어 전체 그룹의 구성을 보려면 다음을 전송합니다.

http://127.0.0.1/upstream_conf?upstream=backend

특정 서버의 구성을 보려면 ID도 지정합니다.

http://127.0.0.1/upstream_conf?upstream=backend&id=42

새 서버를 추가하려면 “server=” 매개변수에 주소를 지정합니다. 다른 매개변수를 지정하지 않으면 다른 매개변수를 해당 기본값으로 설정하여 서버를 추가합니다( http 또는 stream “server” 명령 참조).

예를 들어 새 기본 서버를 추가하려면 다음을 보냅니다.

http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080

새 백업 서버를 추가하려면 다음을 보냅니다.

http://127.0.0.1/upstream_conf?add=&upstream=backend&backup=&server=127.0.0.1:8080

새 기본 서버를 추가하려면 매개변수를 기본값 외의 다른 값으로 설정하고 “down”으로 표시한 다음, 다음을 전송합니다.

http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080&weight=2&down=

서버를 제거하려면 ID를 지정합니다.

http://127.0.0.1/upstream_conf?remove=&upstream=backend&id=42

기존 서버를 “down”으로 표시하려면 다음을 전송합니다.

http://127.0.0.1/upstream_conf?upstream=backend&id=42&down=

기존 서버의 주소를 수정하려면 다음을 전송합니다.

http://127.0.0.1/upstream_conf?upstream=backend&id=42&server=192.0.2.3:8123

기존 서버의 다른 매개변수를 수정하려면 다음을 전송합니다.

http://127.0.0.1/upstream_conf?upstream=backend&id=42&max_fails=3&weight=4

위의 예시는 http 업스트림 서버 그룹에 적용됩니다. stream 업스트림 서버 그룹에서 이와 유사한 예시에는 “stream=” 매개변수가 필요합니다.