Consul 에이전트 구성 파일의 일반 매개변수
Consul 에이전트 구성 파일의 일반 매개변수 (General parameters for Consul agent configuration files)
이 페이지는 Consul 에이전트 구성 파일의 일반 매개변수에 대한 참조 정보를 제공해요.
출처: 문서
본문
이 페이지는 Consul 에이전트 구성 파일의 일반 매개변수에 대한 참조 정보를 제공합니다.
일반 매개변수 (General parameters)
addresses - 바인드 주소를 설정할 수 있게 해주는 중첩 객체입니다. Consul 1.0 이상에서 이는 공백으로 구분된 바인드할 주소 목록 또는 잠재적으로 여러 주소로 해석될 수 있는 go-sockaddr 템플릿으로 설정할 수 있습니다.
VM과 Kubernetes에서 Consul은 IPv4와 IPv6 주소를 모두 지원합니다. 그러나 Consul 데이터센터당 하나의 주소 유형만 사용할 것을 권장합니다.
http, https, grpc는 모두 Unix 도메인 소켓에 바인딩하는 것을 지원합니다. 소켓은 unix:///path/to/socket 형식으로 지정할 수 있습니다. 지정된 경로에 새 도메인 소켓이 생성됩니다. 지정된 파일 경로가 이미 존재하면 Consul은 파일을 지우고 그 자리에 도메인 소켓을 만들려고 시도합니다. 소켓 파일의 권한은 unix_sockets 구성 구조로 조정할 수 있습니다.
Unix 소켓 인터페이스에 대해 Consul 에이전트 명령을 실행할 때는 -http-addr 인수를 사용해 소켓 경로를 지정하세요. 원하는 값을 CONSUL_HTTP_ADDR 환경 변수에 넣을 수도 있습니다.
TCP 주소의 경우 환경 변수 값은 포트가 포함된 IP 주소여야 합니다. 예를 들어 10.0.0.1이 아닌 10.0.0.1:8500입니다. 그러나 구성 파일에서 정의할 때 포트는 ports 구조에서 별도로 설정됩니다.
다음 키가 유효합니다:
* [](/consul/docs/reference/agent/configuration-file/general#)[`dns`](/consul/docs/reference/agent/configuration-file/general#dns) \- DNS 서버. 기본값은 `client_addr`
* [](/consul/docs/reference/agent/configuration-file/general#)[`http`](/consul/docs/reference/agent/configuration-file/general#http) \- HTTP API. 기본값은 `client_addr`
* [](/consul/docs/reference/agent/configuration-file/general#)[`https`](/consul/docs/reference/agent/configuration-file/general#https) \- HTTPS API. 기본값은 `client_addr`
* [](/consul/docs/reference/agent/configuration-file/general#)[`grpc`](/consul/docs/reference/agent/configuration-file/general#grpc) \- gRPC API. 기본값은 `client_addr`
* [](/consul/docs/reference/agent/configuration-file/general#)[`grpc_tls`](/consul/docs/reference/agent/configuration-file/general#grpc_tls) \- TLS가 있는 gRPC API. 기본값은 `client_addr`
auto_reload_config - 이 옵션은 구성 파일이 변경될 때 Consul이 재로드 가능한 구성 옵션을 자동으로 다시 로드하도록 지시합니다. Consul은 또한 cert_file 및 key_file 매개변수로 지정된 인증서와 키 파일을 감시하고 파일이 업데이트되면 구성을 다시 로드합니다. -auto-reload-config 명령줄 플래그와 동일합니다.
bind_addr - 내부 클러스터 통신에 바인드할 주소입니다. 이는 클러스터의 다른 모든 노드에서 도달할 수 있어야 하는 IP 주소입니다. 기본적으로 0.0.0.0이며, 이는 Consul이 로컬 머신의 모든 주소에 바인드하고 클러스터의 나머지 부분에 광고(advertise)할 개인 IPv4 주소를 광고한다는 의미입니다. 사용 가능한 개인 IPv4 주소가 여러 개면 Consul은 시작 시 오류와 함께 종료됩니다. "[::]"를 지정하면 Consul은 공용 IPv6 주소를 광고합니다. 사용 가능한 공용 IPv6 주소가 여러 개면 Consul은 시작 시 오류와 함께 종료됩니다. Consul은 TCP와 UDP를 모두 사용하며 둘 다 같은 포트를 사용합니다. 방화벽이 있으면 두 프로토콜을 모두 허용하세요. Consul 1.1.0 이상에서는 실행 시 단일 주소로 해석되어야 하는 go-sockaddr 템플릿으로 동적으로 정의할 수 있습니다. 큰따옴표 문자열 값 내의 백슬래시 \\ 또는 큰따옴표 \" 같은 특수 문자는 백슬래시 \\로 이스케이프해야 합니다. HCL 및 JSON 템플릿을 검토하려면 바인드 주소 예제를 참조하세요.
cache - 클라이언트 에이전트의 캐싱 동작을 구성합니다. 구성 가능한 값은 다음과 같습니다:
* [](/consul/docs/reference/agent/configuration-file/general#)
entry_fetch_max_burst 캐시 항목당 rate-limit을 재충전하는 데 사용되는 토큰 버킷의 크기입니다. 기본값은 2이며, 캐시가 오랫동안 업데이트되지 않은 경우 rate-limit에 도달하지 않는 한 연속 2회의 쿼리를 수행할 수 있음을 의미합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
entry_fetch_rate 캐시가 단일 항목을 새로 고칠 수 있는 rate-limit을 구성합니다. 초당 많은 변경이 있는 클러스터에서 캐시의 변경을 감시하는 것은 서버에 높은 부하를 줄 수 있습니다. 이는 주어진 서비스가 매 1/100초마다 변경되더라도 단일 캐시 항목에 대한 요청 수가 이 한도를 넘지 않도록 보장합니다. 이는 캐시 항목별 한도이므로 매우 불안정한 서비스가 있어도 이 서비스의 감시에 대해서만 rate-limit이 적용되며 다른 서비스/항목에는 적용되지 않습니다. 값은 엄격히 양수이며 초당 쿼리 수의 부동 소수점으로 표현됩니다. 1은 초당 1쿼리를, 0.1은 최대 10초마다 1요청을 의미합니다. 기본값은 "제한 없음"이며 대규모 클러스터에서 많이 변경되는 항목에 대해 너무 많은 RPC를 수행하지 않도록 조정해야 합니다.
check_update_interval 이 간격은 정상 상태(steady state)의 검사 출력이 서버와 동기화되는 빈도를 제어합니다. 기본적으로 5분("5m")으로 설정됩니다. 정상 상태에 있는 많은 검사는 실행마다 약간 다른 출력(타임스탬프 등)을 생성하여 지속적인 쓰기를 유발합니다. 이 구성은 검사 출력 동기화를 주어진 간격 동안 연기하여 쓰기 부하를 줄일 수 있게 해줍니다. 검사가 상태를 변경하면 새 상태와 관련 출력은 즉시 동기화됩니다. 이 동작을 비활성화하려면 값을 "0s"로 설정하세요.
client_addr - Consul이 HTTP 및 DNS 서버를 포함한 클라이언트 인터페이스를 바인드하는 주소입니다. 기본적으로 127.0.0.1이며 루프백 연결만 허용합니다.
config_entries 이 객체는 중앙 집중식 구성 항목에 대한 옵션을 설정할 수 있게 해줍니다.
다음 하위 키를 사용할 수 있습니다:
* [](/consul/docs/reference/agent/configuration-file/general#)[`bootstrap`](/consul/docs/reference/agent/configuration-file/general#config_entries_bootstrap) 이는 Consul 서버가 리더십을 획득할 때 상태 저장소에 삽입할 인라인 구성 항목 목록입니다. 이 옵션은 서버 노드에만 적용됩니다. 각 부트스트랩 항목은 존재하지 않을 때만 생성됩니다. 재로드할 때 구성에 새로 추가된 항목이 처리됩니다. 각 항목의 내용에 대한 자세한 내용은 [구성 항목 문서](/consul/docs/fundamentals/config-entry)를 참조하세요.
datacenter - 이 매개변수는 에이전트가 실행 중인 데이터센터를 제어합니다. 제공하지 않으면 기본값은 dc1입니다. Consul은 여러 데이터센터를 일급 지원하지만 올바른 구성에 의존합니다. 같은 데이터센터의 노드는 단일 LAN에 있어야 합니다.
경고 (Warning): 이 datacenter 문자열은 RFC 1035 DNS 라벨 요구 사항을 준수해야 하며 문자, 숫자, 하이픈만으로 구성되고 최대 길이는 63자이며 라벨 시작 또는 끝에 하이픈이 없어야 합니다. 규정에 맞지 않는 이름은 PKI X.509 인증서 생성과 호환되지 않는 Consul DNS 항목을 만듭니다.
data_dir - 이 매개변수는 에이전트가 상태를 저장할 데이터 디렉터리를 제공합니다. 모든 에이전트에 필수입니다. 디렉터리는 재부팅 후에도 유지되어야 합니다. 이는 클러스터 상태를 유지할 수 있어야 하므로 서버 모드로 실행되는 에이전트에 특히 중요합니다. 또한 디렉터리는 파일 시스템 잠금을 지원해야 하므로 일부 유형의 마운트된 폴더(예: VirtualBox 공유 폴더)는 적합하지 않을 수 있습니다.
disable_anonymous_signature 업데이트 확인과의 중복 제거를 위한 익명 서명 제공을 비활성화합니다. disable_update_check를 참조하세요.
disable_coordinates - 네트워크 좌표 전송을 비활성화합니다. 네트워크 좌표가 비활성화되면 near 쿼리 매개변수는 노드를 정렬하는 데 작동하지 않으며 consul rtt 명령은 노드 간 왕복 시간을 제공할 수 없습니다.
disable_http_unprintable_char_filter 기본값은 false입니다. Consul v1.0.3은 악의적인 사용자가 CLI나 UI를 사용하는 운영자를 혼란시켜 잘못된 조치를 취하게 할 수 있는 인쇄 불가능 문자로 KV 키를 조작할 수 있는 잠재적 보안 취약점을 수정했습니다. 이 제한이 없었던 이전 Consul 버전에서 작성된 데이터가 있는 사용자는 1.0.3 이상에서 기본적으로 해당 값을 삭제할 수 없습니다. 이 설정은 해당 사용자가 필터를 일시적으로 비활성화하여 해당 키에 대한 삭제 작업이 다시 작동해 정상 상태로 돌아갈 수 있게 해줍니다. 이 필터를 영구적으로 비활성화하면 원래의 보안 취약점이 노출되므로 권장하지 않습니다.
disable_keyring_file - 설정하면 키링이 파일에 유지되지 않습니다. 설치된 키는 종료 시 손실되며 시작 시 주어진 암호화 키만 사용할 수 있습니다. 기본값은 false입니다. -disable-keyring-file 명령줄 플래그와 동일합니다.
disable_remote_exec - 원격 실행 지원을 비활성화합니다. true로 설정하면 에이전트는 들어오는 원격 실행 요청을 무시합니다. 0.8 이전의 Consul 버전에서는 기본값이 false였습니다. Consul 0.8에서 기본값은 true로 변경되어 원격 실행을 옵트아웃이 아닌 옵트인으로 만들었습니다.
disable_update_check 보안 게시판 및 새 버전 릴리스에 대한 자동 확인을 비활성화합니다. Consul Enterprise에서는 비활성화됩니다.
discard_check_output 저장하기 전에 상태 검사의 출력을 버립니다. 이는 상태 검사에 타임스탬프, 프로세스 ID 등과 같은 변동성 있는 출력이 있는 환경에서 Consul raft 로그에 대한 쓰기 수를 줄입니다.
discovery_max_stale - 모든 서비스 검색 HTTP 엔드포인트에 대한 stale 요청을 활성화합니다. 이는 DNS 요청에 대한 max_stale 구성과 동일합니다. 이 값이 0(기본값)이면 모든 서비스 검색 HTTP 엔드포인트가 리더로 전달됩니다. 이 값이 0보다 크면 모든 Consul 서버가 서비스 검색 요청을 처리할 수 있습니다. Consul 서버가 discovery_max_stale보다 더 뒤처져 있으면 더 최신 결과를 얻기 위해 쿼리가 리더에서 다시 평가됩니다. Consul 에이전트는 또한 에이전트가 stale 읽기를 했는지 나타내는 새 X-Consul-Effective-Consistency 응답 헤더를 추가합니다. discover-max-stale은 Consul 운영자가 에이전트 수준에서 클라이언트의 stale 요청을 강제하는 방법으로 Consul 1.0.7에서 도입되었으며, 이전 Consul 버전의 기본 일관성 동작과 일치하는 기본값 0입니다.
enable_agent_tls_for_checks 설정하면 에이전트의 TLS 구성(key_file, cert_file, ca_file, ca_path, server_name)의 하위 집합을 사용해 HTTP 또는 gRPC 상태 검사용 클라이언트를 설정합니다. 이는 양방향 TLS가 필요한 서비스가 에이전트의 자격 증명을 사용해 검사될 수 있게 해줍니다. Consul v1.0.1에서 추가되었으며 기본값은 false입니다.
enable_central_service_config - 설정하면 Consul 에이전트는 등록 중인 서비스 인스턴스와 일치하는 중앙 집중식 서비스 구성을 찾습니다. 찾으면 에이전트는 중앙 집중식 기본값을 서비스 인스턴스 구성과 병합합니다. 이는 서비스 프로토콜이나 프록시 구성 같은 것을 중앙에서 정의하고 영향을 받는 모든 서비스 등록이 상속할 수 있게 해줍니다. Consul 1.9.0 이전 버전에서는 기본값이 false이며 Consul 1.9.0 이상에서는 기본값이 true입니다.
enable_debug (boolean, 기본값 false): true로 설정하면 런타임 프로파일링(pprof) 데이터를 포함한 추가 디버깅 정보를 보고할 수 있게 해줍니다. 이 설정은 ACL이 활성화되지 않은 클러스터에만 필요합니다. 이 설정을 변경하면 변경 사항이 적용되도록 에이전트를 다시 시작해야 합니다.
disable_kv_key_validation (boolean, 기본값 false): true로 설정하면 경로 탐색 공격 및 기타 보안 문제를 방지하는 KV 키 검증을 비활성화합니다. 키 검증은 Consul v1.22.0부터 키에 경로 이스케이프, 디렉토리 이스케이프, 선행 공백, 후행 공백을 허용하지 않습니다. 특정 레거시 호환성 요구 사항이 없는 한 보안상의 이유로 이 매개변수를 false로 유지할 것을 강력히 권장합니다.
enable_script_checks 이 매개변수는 스크립트를 실행하는 상태 검사가 이 에이전트에서 활성화되는지 여부를 제어하며 운영자가 이를 허용하도록 옵트인해야 하므로 기본값은 false입니다.
Consul 0.9.0 이상에서 스크립트 검사를 활성화하려면 에이전트에 대해 ACL이 활성화되고 enable_script_checks 옵션이 true로 설정되어야 합니다. 관련 정보는 노드 정보 등록 및 쿼리를 참조하세요.
보안 경고 (Security Warning)
일부 구성에서 스크립트 검사를 활성화하면 악성 코드가 표적으로 삼는 알려진 원격 실행 취약점이 발생할 수 있습니다. 대신 enable_local_script_checks를 강력히 권장합니다. 자세한 내용은 다음 문서를 참조하세요: Protecting Consul from RCE Risk in Specific Configurations
enable_local_script_checks 로컬 구성 파일에 정의된 경우에만 로컬 스크립트 검사를 활성화합니다. HTTP API 등록에 정의된 스크립트 검사는 여전히 허용되지 않습니다. -enable-local-script-checks 명령줄 플래그와 동일합니다.
enable_xds_load_balancing - 서버 전반의 xDS 세션 로드 밸런싱을 제어합니다. 기본값은 false입니다. 활성화되면 xDS 세션은 사용 가능한 Consul 서버에 고르게 분산됩니다. 개별 서버가 세션 한도에 도달하면 새 연결을 거부하고 클라이언트는 다른 서버로 재시도합니다. 비활성화되면 서버는 한도를 적용하지 않고 모든 xDS 세션을 허용합니다. Consul 서버 앞에서 외부 로드 밸런서를 사용할 때는 이 매개변수를 비활성화할 것을 권장합니다. 배포 지침은 Consul의 xDS 로드 밸런싱을 참조하세요.
http_config 이 객체는 HTTP API와 UI에 대한 옵션을 설정할 수 있게 해줍니다.
다음 하위 키를 사용할 수 있습니다:
* [](/consul/docs/reference/agent/configuration-file/general#)
block_endpoints 이 객체는 에이전트에서 차단할 HTTP API 엔드포인트 접두사 목록이며 기본값은 빈 목록으로 모든 엔드포인트가 활성화됩니다. 이 목록의 항목 중 하나와 공통 접두사를 가진 모든 엔드포인트는 차단되고 액세스 시 403 응답 코드를 반환합니다. 예를 들어 V1 ACL 엔드포인트를 모두 차단하려면 ["/v1/acl"]로 설정하면 /v1/acl/create, /v1/acl/update 및 /v1/acl로 시작하는 다른 ACL 엔드포인트가 차단됩니다. 이는 API 엔드포인트에서만 작동하며 /ui나 /debug는 해당 구성 옵션으로 비활성화해야 합니다. 비활성화된 엔드포인트를 사용하는 모든 CLI 명령도 더 이상 작동하지 않습니다. 더 일반적인 액세스 제어를 위해서는 Consul의 ACL 시스템을 사용해야 하지만 이 옵션은 특정 에이전트에서 HTTP API 엔드포인트에 대한 액세스를 완전히 제거하는 데 유용합니다. Consul 0.9.0 이상에서 사용할 수 있습니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
response_headers 이 객체는 HTTP API와 UI 응답에 헤더를 추가할 수 있게 해줍니다. HTTP API 엔드포인트에서 CORS를 활성화하는 방법은 CORS 예제를 참조하세요.
* [](/consul/docs/reference/agent/configuration-file/general#)
allow_write_http_from 이 객체는 에이전트 쓰기 엔드포인트를 호출할 수 있는 CIDR 표기(예: "127.0.0.0/8")의 네트워크 목록입니다. 기본값은 빈 목록으로 모든 네트워크가 허용됨을 의미합니다. 이는 선택된 IP 범위를 제외하고 에이전트를 읽기 전용으로 만드는 데 사용됩니다. - 어디에서나 쓰기 호출을 차단하려면 [ "255.255.255.255/32" ]를 사용하세요. - localhost에서만 쓰기 호출을 허용하려면 [ "127.0.0.0/8" ]를 사용하세요. - 특정 IP만 허용하려면 [ "10.0.0.1/32", "10.0.0.2/32" ]를 사용하세요.
* [](/consul/docs/reference/agent/configuration-file/general#)
use_cache 기본값은 true입니다. 비활성화하면 에이전트는 요청에 응답하기 위해 에이전트 캐싱을 사용하지 않습니다. url 매개변수가 제공되는 경우에도 마찬가지입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
max_header_bytes 이 설정은 consul http 서버가 요청 헤더의 키와 값(요청 라인 포함)을 파싱하면서 읽는 최대 바이트 수를 제어합니다. 요청 본문의 크기는 제한하지 않습니다. 0 또는 음수이면 http.DefaultMaxHeaderBytes가 사용되며 이는 1메가바이트입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
read_timeout 본문을 포함한 전체 요청을 읽는 최대 시간입니다. 이 시간 제한은 느린 요청 본문 공격을 방지합니다. 0 또는 음수 값은 시간 제한을 비활성화합니다. 기본값: 30s. 최소값: 1s. Consul v1.22.4에서 추가됨.
* [](/consul/docs/reference/agent/configuration-file/general#)
read_header_timeout 요청 헤더를 읽는 데 허용되는 시간입니다. 헤더를 읽은 후 연결의 읽기 마감 시간이 재설정됩니다. 이 시간 제한은 헤더 파싱에 대한 Slowloris 공격을 방지합니다. 기본값: 10s. 최소값: 1s. Consul v1.22.4에서 추가됨.
* [](/consul/docs/reference/agent/configuration-file/general#)
write_timeout 응답 쓰기 시도가 시간 초과되기까지의 최대 시간입니다. 이 시간 제한은 느린 응답 배출 공격을 방지합니다. 0 또는 음수 값은 시간 제한을 비활성화합니다. 기본값: 30s. 최소값: 1s. Consul v1.22.4에서 추가됨.
* [](/consul/docs/reference/agent/configuration-file/general#)
idle_timeout keep-alive가 활성화된 상태에서 다음 요청을 기다리는 최대 시간입니다. 이 시간 제한은 연결 고갈 공격을 방지합니다. 기본값: 120s. 최소값: 10s. Consul v1.22.4에서 추가됨.
참고 (Note)
기본 시간 제한보다 오래 걸리는 상태 검사나 다른 작업이 있으면 이 값을 그에 따라 늘려야 합니다. 예를 들어 최대 60초가 걸리는 상태 검사가 있으면 read_timeout과 write_timeout을 최소 60s 이상으로 설정하세요.
예제: HTTP 시간 제한 구성 (Configuring HTTP timeouts)
HCLJSON
http_config {
read_timeout = "60s"
read_header_timeout = "20s"
write_timeout = "60s"
idle_timeout = "300s"
}
{
"http_config": {
"read_timeout": "60s",
"read_header_timeout": "20s",
"write_timeout": "60s",
"idle_timeout": "300s"
}
}
leave_on_terminate 활성화되면 에이전트가 TERM 신호를 받을 때 클러스터의 나머지 부분에 Leave 메시지를 보내고 우아하게 떠납니다. 이 기능의 기본 동작은 에이전트가 클라이언트로 실행 중인지 서버로 실행 중인지에 따라 다릅니다(Consul 0.7 이전에는 기본값이 무조건 false였습니다). 클라이언트 모드 에이전트에서는 기본값이 true이고 서버 모드 에이전트에서는 기본값이 false입니다.
Enterprise
Consul Enterprise 라이선스가 포함된 파일의 경로를 지정합니다. 또는 라이선스를 CONSUL_LICENSE 또는 CONSUL_LICENSE_PATH 환경 변수로 지정할 수도 있습니다. Consul Enterprise 라이선스 관리에 대한 자세한 내용은 라이선스 문서를 참조하세요. 버전 1.10.0, 1.9.7, 1.8.13에서 추가됨. 1.10.0 이전에는 1.10과의 순방향 호환성을 위해 모든 에이전트에서 값을 설정할 수 있지만 실제로는 클라이언트 에이전트에서만 사용됩니다.
limits: 이 블록은 Consul 서버 에이전트가 적용하는 다양한 유형의 한도를 지정합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`http_max_conns_per_client`](/consul/docs/reference/agent/configuration-file/general#http_max_conns_per_client) \- 단일 클라이언트 IP 주소가 에이전트의 HTTP(S) 서버에 열 수 있는 동시 TCP 연결 수의 한도를 구성합니다. 이는 클라이언트와 서버 에이전트의 HTTP(S) 서버 모두에 영향을 줍니다. 기본값은 `200`입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`https_handshake_timeout`](/consul/docs/reference/agent/configuration-file/general#https_handshake_timeout) \- 클라이언트와 서버 에이전트의 HTTPS 서버가 클라이언트의 TLS 핸드셰이크 완료를 기다리는 시간 한도를 구성합니다. `verify_incoming`을 사용해 클라이언트를 인증하는 경우(프로덕션에서 강력히 권장) 인증되지 않은 공격자가 열 수 있는 연결 수를 제한하므로 이 값은 보수적으로 유지해야 합니다. 기본값은 `5s`입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`request_limits`](/consul/docs/reference/agent/configuration-file/general#request_limits) \- 이 객체는 Consul 서버의 RPC 및 gRPC 요청 속도를 제한하는 구성을 지정합니다. gRPC 및 RPC 요청의 속도를 제한하면 Consul 서버에 대한 HTTP 요청도 제한됩니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`mode`](/consul/docs/reference/agent/configuration-file/general#mode) \- 요청 속도가 한도를 초과할 때 수행할 작업을 지정하는 문자열 값입니다. 다음 값을 지정할 수 있습니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`permissive`](/consul/docs/reference/agent/configuration-file/general#permissive): 서버가 요청을 계속 허용하고 로그에 오류를 기록합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`enforcing`](/consul/docs/reference/agent/configuration-file/general#enforcing): 서버가 요청 수락을 중지하고 로그에 오류를 기록합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`disabled`](/consul/docs/reference/agent/configuration-file/general#disabled): 한도가 적용되거나 추적되지 않습니다. 이는 `mode`의 기본값입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`read_rate`](/consul/docs/reference/agent/configuration-file/general#read_rate) \- 초당 읽기 요청 수를 지정하는 정수 값입니다. 기본값은 무한대를 나타내는 `-1`입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`write_rate`](/consul/docs/reference/agent/configuration-file/general#write_rate) \- 초당 쓰기 요청 수를 지정하는 정수 값입니다. 기본값은 무한대를 나타내는 `-1`입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`rpc_handshake_timeout`](/consul/docs/reference/agent/configuration-file/general#rpc_handshake_timeout) \- 클라이언트 TCP 연결이 설정된 후 서버가 연결 핸드셰이크를 완료하기까지 기다리는 시간 한도를 구성합니다. TLS를 사용하면 같은 시간 제한이 초기 프로토콜 협상과 별도로 TLS 핸드셰이크에 적용됩니다. 모든 Consul 클라이언트는 새 연결 설정 직후 이를 수행해야 합니다. `verify_incoming`을 사용해 클라이언트를 인증하는 경우(프로덕션에서 강력히 권장) 인증되지 않은 공격자가 열 수 있는 연결 수를 제한하므로 이 값은 보수적으로 유지해야 합니다. 서버에서 `verify_incoming`이 true이면 이는 클라이언트가 성공적으로 인증하기 전에 연결 소켓과 관련 고루틴이 열려 있는 시간을 제한합니다. 기본값은 `5s`입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`rpc_client_timeout`](/consul/docs/reference/agent/configuration-file/general#rpc_client_timeout) \- 클라이언트가 RPC 연결에서 읽을 수 있는 시간 한도를 구성합니다. RPC 연결이 무기한 유지되지 않도록 호출이 결국 종료되도록 하는 상한을 설정하는 데 사용됩니다. Blocking 쿼리는 이 시간 제한을 재정의할 수 있습니다. 기본값은 `60s`입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`rpc_max_conns_per_client`](/consul/docs/reference/agent/configuration-file/general#rpc_max_conns_per_client) \- 단일 소스 IP 주소가 단일 서버에 열 수 있는 동시 TCP 연결 수의 한도를 구성합니다. 클라이언트 연결과 다른 서버 연결 모두에 영향을 줍니다. 일반적으로 Consul 클라이언트는 단일 TCP 연결을 통해 많은 RPC 호출을 다중화하므로 이 값은 보통 낮게 유지할 수 있습니다. 그러나 서버는 raft RPC용으로 추가 연결을 하나 이상 열고, 네트워크 영역을 사용할 때 WAN 페더레이션용으로 더 열 수 있으며, 클라이언트의 스냅샷 요청은 별도의 TCP 연결을 통해 실행되므로 1보다 커야 합니다. 합리적으로 낮은 한도는 인증되지 않은 공격자가 많은 연결을 열어 무제한 리소스를 소비할 능력을 크게 줄입니다. WAN 페더레이션된 서버가 프록시나 NAT 게이트웨이 등을 통해 연결되어 단일 소스 IP에서 많은 합법적 연결이 발생하면 이 값을 늘려야 할 수 있습니다. 특정 배포 패턴의 문제를 제한하도록 매우 보수적으로 설계된 기본값은 `100`입니다. 대부분의 배포에서는 안전하게 줄일 수 있습니다. 최신 서버 하드웨어에서 100개 연결은 인증되지 않은 공격자의 리소스 사용에 큰 영향을 주지 않습니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`rpc_rate`](/consul/docs/reference/agent/configuration-file/general#rpc_rate) \- 이 에이전트가 Consul 서버에 RPC 요청을 하도록 허용된 최대 요청 속도(초당 요청 수)를 설정하여 Consul _클라이언트_의 RPC rate limiter를 구성합니다. 기본값은 무한대로 rate limiting을 비활성화합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`rpc_max_burst`](/consul/docs/reference/agent/configuration-file/general#rpc_max_burst) \- Consul _클라이언트_의 RPC rate limiter를 재충전하는 데 사용되는 토큰 버킷의 크기입니다. 기본값은 1000 토큰이며 각 토큰은 Consul 서버에 대한 단일 RPC 호출에 사용됩니다. 토큰 버킷 rate limiter가 작동하는 방식에 대한 자세한 내용은 <https://en.wikipedia.org/wiki/Token_bucket>를 참조하세요.
* [](/consul/docs/reference/agent/configuration-file/general#)[`kv_max_value_size`](/consul/docs/reference/agent/configuration-file/general#kv_max_value_size) \- **(고급)** [`/v1/kv`](/consul/api-docs/kv) 엔드포인트에 대한 kv 요청 본문의 최대 바이트 수를 구성합니다. 이 한도는 기본적으로 [raft의](https://github.com/hashicorp/raft) 권장 최대 크기(512KB)입니다. **이를 잘못 조정하면 Consul이 예기치 않은 방식으로 실패할 수 있습니다.** 리더십 안정성에 영향을 주고 RPC IO 지속 시간 증가로 시기적절한 하트비트 신호를 방해할 수 있습니다. 이 옵션은 txn 엔드포인트에도 영향을 주지만 Consul 1.7.2는 txn 엔드포인트의 한도를 설정하는 권장 방법인 `txn_max_req_len`을 도입했습니다. 두 한도가 모두 설정되면 더 높은 값이 우선합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`txn_max_req_len`](/consul/docs/reference/agent/configuration-file/general#txn_max_req_len) \- **(고급)** [`/v1/txn`](/consul/api-docs/txn) 엔드포인트에 대한 트랜잭션 요청 본문의 최대 바이트 수를 구성합니다. 이 한도는 기본적으로 [raft의](https://github.com/hashicorp/raft) 권장 최대 크기(512KB)입니다. **이를 잘못 조정하면 Consul이 예기치 않은 방식으로 실패할 수 있습니다.** 리더십 안정성에 영향을 주고 RPC IO 지속 시간 증가로 시기적절한 하트비트 신호를 방해할 수 있습니다.
default_query_time - 이 매개변수는 blocking 쿼리가 Consul이 응답을 강제하기 전에 기다리는 시간을 제어합니다. 이 값은 wait 쿼리 매개변수로 재정의할 수 있습니다. Consul은 이 시간에 약간의 지터를 적용합니다. 기본값은 300s입니다. -default-query-time 명령줄 플래그와 동일합니다.
max_query_time - 이 매개변수는 blocking 쿼리가 Consul이 응답을 강제하기 전에 기다릴 수 있는 최대 시간을 제어합니다. Consul은 대기 시간에 지터를 적용합니다. 지터가 적용된 시간은 이 시간으로 상한이 지정됩니다. 기본값은 600s입니다. -max-query-time 명령줄 플래그와 동일합니다.
peering 이 객체는 클러스터 피어링에 대한 옵션을 설정할 수 있게 해줍니다.
다음 하위 키를 사용할 수 있습니다:
* [](/consul/docs/reference/agent/configuration-file/general#)[`enabled`](/consul/docs/reference/agent/configuration-file/general#peering_enabled) (기본값 `true`) 클러스터 피어링이 활성화되었는지 여부를 제어합니다. 비활성화하면 UI에 피어링이 표시되지 않고 모든 피어링 API가 오류를 반환하며 Consul에 이미 저장된 모든 피어링은 무시(삭제되지는 않음)되고 다른 클러스터의 모든 피어링 연결이 거부됩니다. Consul 1.13.0에서 추가됨.
Enterprise
- 이 플래그는 에이전트가 속한 admin 파티션의 이름을 설정하는 데 사용됩니다. 에이전트는 자체 admin 파티션 내의 다른 에이전트와만 조인하고 통신할 수 있습니다. 자세한 내용은 Admin Partitions 문서를 검토하세요. 기본적으로 이는 default admin 파티션인 빈 문자열입니다. 서버 에이전트에는 설정할 수 없습니다.
경고 (Warning)
partition 옵션은 segment 옵션 또는 -segment 플래그와 함께 사용할 수 없습니다.
performance - Consul v0.7 이상에서 사용할 수 있으며 이 중첩 객체는 Consul의 다른 하위 시스템의 성능을 조정할 수 있게 해줍니다. 자세한 내용은 서버 성능 문서를 참조하세요. 다음 매개변수를 사용할 수 있습니다:
* [](/consul/docs/reference/agent/configuration-file/general#)
leave_drain_time - 서버가 우아한 종료 중에 요청이 다른 Consul 서버에 대해 재시도될 수 있도록 머무는 시간입니다. 일반적인 상황에서 이는 Consul 서버의 롤링 업데이트를 수행할 때 클라이언트가 "no leader" 오류를 겪지 않도록 방지할 수 있습니다. Consul 1.0에서 추가됨. 10s와 같은 지속 시간 값이어야 합니다. 기본값은 5s입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
raft_multiplier - Consul 서버가 핵심 Raft 타이밍 매개변수를 확장하는 데 사용하는 정수 승수입니다. 이 값을 생략하거나 0으로 설정하면 아래 설명된 기본 타이밍을 사용합니다. 더 낮은 값은 타이밍을 조여 민감도를 높이고 더 높은 값은 타이밍을 완화해 민감도를 줄입니다. 이를 조정하면 Consul이 리더 장애를 감지하고 리더 선거를 수행하는 시간에 영향을 주며, 더 나은 성능을 위해 더 많은 네트워크 및 CPU 리소스가 필요하게 됩니다.
기본적으로 Consul은 최소 Consul 서버에 적합한 저성능 타이밍을 사용하며, 현재 이 값을 5로 설정하는 것과 동일합니다(이 기본값은 대상 최소 서버 프로필이 변경되면 향후 Consul 버전에서 변경될 수 있음). 이 값을 1로 설정하면 Raft가 최고 성능 모드로 구성되며 Consul 0.7 이전의 기본 타이밍과 동일하고 프로덕션 Consul 서버에 권장됩니다.
이 매개변수 조정에 대한 자세한 내용은 last contact 타이밍에 대한 참고를 참조하세요. 최대 허용 값은 10입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
rpc_hold_timeout - 클라이언트나 서버가 리더 선거 중에 내부 RPC 요청을 재시도하는 시간입니다. 일반적인 상황에서 이는 클라이언트가 "no leader" 오류를 겪지 않도록 방지할 수 있습니다. Consul 1.0에서 추가됨. 10s와 같은 지속 시간 값이어야 합니다. 기본값은 7s입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
grpc_keepalive_interval - Consul 서버가 비활성 gRPC 클라이언트에 keep-alive 메시지를 보내는 빈도를 결정하는 시간입니다. 이 설정을 구성해 Consul이 잘못 닫힌 xDS 또는 피어링 연결을 감지하고 제거하는 속도를 수정하세요. 기본값은 30s입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
grpc_keepalive_timeout - Consul 서버가 keep-alive 메시지에 대한 응답을 기다리는 시간을 결정하는 시간입니다. 서버가 시간이 끝나기 전에 응답을 받지 못하면 Consul은 gRPC 연결을 비정상으로 표시하고 강제로 제거합니다. 기본값은 20s입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)
enable_xds_load_balancing - 서버 전반의 xDS 세션 로드 밸런싱을 제어합니다. 활성화되면 xDS 세션은 사용 가능한 Consul 서버에 고르게 분산됩니다. 개별 서버가 세션 한도에 도달하면 새 연결을 거부하고 클라이언트는 다른 서버로 재시도합니다. 비활성화되면 서버는 한도를 적용하지 않고 모든 xDS 세션을 허용합니다. Consul 서버 앞에서 외부 로드 밸런서를 사용할 때는 이 매개변수를 비활성화할 것을 권장합니다.
pid_file - 이 매개변수는 에이전트가 PID를 저장할 파일 경로를 제공합니다. 에이전트를 닫을 SIGINT 또는 검사 정의를 업데이트할 SIGHUP 같은 신호를 에이전트에 보내는 데 사용하세요. -pid-file 명령줄 플래그와 동일합니다.
ports - 다음 키에 대한 바인드 포트를 설정할 수 있게 해주는 중첩 객체입니다:
* [](/consul/docs/reference/agent/configuration-file/general#)[`dns`](/consul/docs/reference/agent/configuration-file/general#dns_port) \- DNS 서버, 비활성화하려면 -1. 기본 8600. TCP 및 UDP.
* [](/consul/docs/reference/agent/configuration-file/general#)[`http`](/consul/docs/reference/agent/configuration-file/general#http_port) \- HTTP API, 비활성화하려면 -1. 기본 8500. TCP만.
* [](/consul/docs/reference/agent/configuration-file/general#)[`https`](/consul/docs/reference/agent/configuration-file/general#https_port) \- HTTPS API, 비활성화하려면 -1. 기본 -1(비활성화). 일부 도구가 자동으로 작동하므로 규칙에 따라 `https`에 **`8501`를 사용할 것을 권장합니다.**
* [](/consul/docs/reference/agent/configuration-file/general#)[`grpc`](/consul/docs/reference/agent/configuration-file/general#grpc_port) \- gRPC API, 비활성화하려면 -1. 기본 -1(비활성화). 일부 도구가 자동으로 작동하므로 기존 gRPC 포트 번호로 **`8502`를 `grpc`에 사용할 것을 권장합니다.** 이 매개변수는 에이전트가 `-dev` 모드로 실행될 때 기본적으로 `8502`로 설정됩니다. `grpc` 포트는 Consul 1.14부터 일반 텍스트 트래픽만 지원합니다. TLS 지원 포트 구성에 대한 자세한 내용은 `grpc_tls`를 참조하세요.
* [](/consul/docs/reference/agent/configuration-file/general#)[`grpc_tls`](/consul/docs/reference/agent/configuration-file/general#grpc_tls_port) \- TLS 연결이 있는 gRPC API, 비활성화하려면 -1. gRPC_TLS는 Consul 서버의 경우 포트 8503에서 기본적으로 활성화됩니다. 일부 도구가 자동으로 작동하므로 기존 gRPC 포트 번호로 **`8503`를 `grpc_tls`에 사용할 것을 권장합니다.** `grpc_tls`는 항상 암호화되는 것이 보장됩니다. `grpc`와 `grpc_tls`를 동시에 구성할 수 있지만 같은 포트 번호를 사용할 수는 없습니다. 이 필드는 Consul 1.14에서 추가됨.
* [](/consul/docs/reference/agent/configuration-file/general#)[`serf_lan`](/consul/docs/reference/agent/configuration-file/general#serf_lan_port) \- Serf LAN 포트. 기본 8301. TCP 및 UDP. [`-serf-lan-port` 명령줄 플래그](/consul/commands/agent#_serf_lan_port)와 동일합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`serf_wan`](/consul/docs/reference/agent/configuration-file/general#serf_wan_port) \- Serf WAN 포트. 기본 8302. [`-serf-wan-port` 명령줄 플래그](/consul/commands/agent#_serf_wan_port)와 동일합니다. 비활성화하려면 -1로 설정하세요. **참고**: 이는 권장되지 않는 WAN 페더레이션을 비활성화합니다. 다양한 카탈로그 및 WAN 관련 엔드포인트가 오류나 빈 결과를 반환합니다. TCP 및 UDP.
* [](/consul/docs/reference/agent/configuration-file/general#)[`server`](/consul/docs/reference/agent/configuration-file/general#server_rpc_port) \- 서버 RPC 주소. 기본 8300. TCP만.
* [](/consul/docs/reference/agent/configuration-file/general#)[`sidecar_min_port`](/consul/docs/reference/agent/configuration-file/general#sidecar_min_port) \- 자동 할당된 [사이드카 서비스 등록](/consul/docs/reference/proxy/sidecar)에 사용할 포함 최소 포트 번호. 기본 21000. 자동 포트 할당을 비활성화하려면 `0`으로 설정하세요.
* [](/consul/docs/reference/agent/configuration-file/general#)[`sidecar_max_port`](/consul/docs/reference/agent/configuration-file/general#sidecar_max_port) \- 자동 할당된 [사이드카 서비스 등록](/consul/docs/reference/proxy/sidecar)에 사용할 포함 최대 포트 번호. 기본 21255. 자동 포트 할당을 비활성화하려면 `0`으로 설정하세요.
* [](/consul/docs/reference/agent/configuration-file/general#)[`expose_min_port`](/consul/docs/reference/agent/configuration-file/general#expose_min_port) \- 자동 할당된 [노출된 검사 리스너](/consul/docs/reference/proxy/connect-proxy#expose-paths-configuration-reference)에 사용할 포함 최소 포트 번호. 기본 21500. 자동 포트 할당을 비활성화하려면 `0`으로 설정하세요.
* [](/consul/docs/reference/agent/configuration-file/general#)[`expose_max_port`](/consul/docs/reference/agent/configuration-file/general#expose_max_port) \- 자동 할당된 [노출된 검사 리스너](/consul/docs/reference/proxy/connect-proxy#expose-paths-configuration-reference)에 사용할 포함 최대 포트 번호. 기본 21755. 자동 포트 할당을 비활성화하려면 `0`으로 설정하세요.
primary_datacenter - 이는 ACL 정보, 의도(intentions)에 대해 권위가 있고 서비스 메시의 루트 인증 기관인 데이터센터를 지정합니다. ACL을 활성화하려면 제공해야 합니다. 모든 서버와 데이터센터가 기본 데이터센터에 동의해야 합니다. 클러스터 수준 적용에는 서버에 설정하는 것만으로 충분하지만 API가 클라이언트에서 올바르게 전달되려면 클라이언트에도 설정해야 합니다. Consul 0.8 이상에서 이는 ACL의 에이전트 수준 적용도 활성화합니다.
primary_gateways - 권위 있는 복제 카탈로그 데이터가 없을 때 기본 데이터센터의 mesh 게이트웨이로 사용할 주소 목록을 사용합니다. 검색은 최소한 하나의 기본 mesh 게이트웨이가 검색될 때까지 매 primary_gateways_interval마다 발생합니다. Consul 1.8.0에서 추가됨. -primary-gateway 명령줄 플래그와 동일합니다.
primary_gateways_interval primary_gateways 검색 시도 사이의 대기 시간. 기본값은 "30s"입니다. Consul 1.8.0에서 추가됨.
protocol - 사용할 Consul 프로토콜 버전입니다. Consul 에이전트는 기본적으로 프로토콜 2를 사용하지만 호환 가능한 에이전트와 통신할 때 자동으로 프로토콜 > 2를 사용합니다. 이는 업그레이드할 때만 설정해야 합니다. Consul이 지원하는 프로토콜 버전은 consul version을 실행하여 볼 수 있습니다. -protocol 명령줄 플래그와 동일합니다.
reap 이는 Consul이 자식 프로세스가 PID 1로 실행되는 Docker 컨테이너에서 유용한 자식 프로세스 자동 수집(reaping)을 제어합니다. 지정하지 않으면 Consul은 자체가 PID 1로 실행되는 것을 감지하면 자식 프로세스를 자동으로 수집합니다. true 또는 false로 설정하면 Consul의 PID에 관계없이 수집을 제어합니다(각각 강제로 켜거나 끔). 이 옵션은 Consul 0.7.1에서 제거되었습니다. 이후 버전의 Consul에서는 래퍼를 사용해 프로세스를 수집해야 하며 예제는 Consul Docker 이미지 엔트리포인트 스크립트를 참조하세요. Docker 1.13.0 이상을 사용하는 경우 docker run 명령의 새 --init 옵션을 사용할 수 있으며 docker는 컨테이너의 자식 프로세스를 수집하는 PID 1의 init 프로세스를 활성화합니다. 자세한 내용은 Docker 문서를 참조하세요.
reconnect_timeout 이는 실패한 노드가 클러스터에서 완전히 제거되는 데 걸리는 시간을 제어합니다. 기본값은 72시간이며 노드 또는 네트워크 파티션의 예상 최대 복구 가능 중단 시간의 최소 두 배로 설정할 것을 권장합니다. 경고: 이 시간을 너무 낮게 설정하면 장기간의 노드 장애나 파티션 동안 Consul 서버가 쿼럼에서 제거되어 클러스터 복구가 복잡해질 수 있습니다. 값은 "s", "m", "h"가 초, 분, 시간을 나타내는 단위 접미사가 있는 시간입니다. 값은 >= 8시간이어야 합니다.
reconnect_timeout_wan 이는 실패한 서버가 WAN 풀에서 완전히 제거되는 데 걸리는 시간을 제어하는 reconnect_timeout 매개변수의 WAN 버전입니다. 이것도 기본값이 72시간이며 >= 8시간이어야 합니다.
rpc Consul 서버용 구성입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`enable_streaming`](/consul/docs/reference/agent/configuration-file/general#rpc_enable_streaming) 기본값은 true입니다. false로 설정하면 Consul 서버의 gRPC 구독 엔드포인트를 비활성화합니다. 페더레이션된 모든 데이터센터의 모든 서버는 어떤 클라이언트도 [`use_streaming_backend`](/consul/docs/reference/agent/configuration-file/general#use_streaming_backend)를 사용하기 전에 이 기능을 활성화해야 합니다.
Enterprise
- 이 옵션은 HashiCorp 보고에 대한 옵션을 허용합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`license`](/consul/docs/reference/agent/configuration-file/general#license) \- 라이선스 객체는 사용자가 라이선스 사용 메트릭을 HashiCorp에 자동 보고하는 것을 제어할 수 있게 해줍니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`enabled`](/consul/docs/reference/agent/configuration-file/general#enabled-1): (기본값 `true`) 라이선스 사용 보고를 자동으로 활성화합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`snapshot_retention_time`](/consul/docs/reference/agent/configuration-file/general#snapshot_retention_time) \- 이 옵션은 Consul이 내부 Raft-복제 상태에 라이선스 사용 스냅샷을 보관하는 시간을 제어합니다. 기본값은 약 400일에 해당하는 `9600h`입니다. Consul은 HashiCorp에 보고하는 것이 비활성화된 경우에도 24시간마다 자동으로 스냅샷을 찍습니다. 따라서 Consul은 기본적으로 내부 Raft-복제 상태에 400개의 보고서를 보관합니다.
Enterprise
- 이 매개변수는 에이전트가 속한 네트워크 세그먼트의 이름을 설정합니다. 에이전트는 자체 네트워크 세그먼트 내의 다른 에이전트와만 조인하고 통신할 수 있습니다. 조인 작업이 이 세그먼트에 올바른 포트를 사용하는지 확인하세요. 자세한 내용은 네트워크 세그먼트 문서를 검토하세요. 기본적으로 이는 <default> 네트워크 세그먼트인 빈 문자열입니다. -segment 명령줄 플래그와 동일합니다.
경고 (Warning)
segment 옵션은 partition 옵션과 함께 사용할 수 없습니다.
Enterprise
- (서버 에이전트만) 이는 자동으로 생성되는 <default> 세그먼트를 제외한 사용자 정의 네트워크 세그먼트를 지정하는 중첩 객체 목록입니다. 추가 정보는 네트워크 세그먼트 문서를 참조하세요.
* [](/consul/docs/reference/agent/configuration-file/general#)[`name`](/consul/docs/reference/agent/configuration-file/general#segment_name) \- 세그먼트의 이름입니다. 길이가 1~64자인 문자열이어야 합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`bind`](/consul/docs/reference/agent/configuration-file/general#segment_bind) \- 세그먼트의 gossip 레이어에 사용할 바인드 주소입니다. 제공하지 않으면 [`-bind`](/consul/commands/agent#_bind) 값이 기본값입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`port`](/consul/docs/reference/agent/configuration-file/general#segment_port) \- 세그먼트의 gossip 레이어에 사용할 포트(필수)입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`advertise`](/consul/docs/reference/agent/configuration-file/general#segment_advertise) \- 세그먼트의 gossip 레이어에 사용할 광고 주소입니다. 제공하지 않으면 [`-advertise`](/consul/commands/agent#_advertise) 값이 기본값입니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`rpc_listener`](/consul/docs/reference/agent/configuration-file/general#segment_rpc_listener) \- true이면 이 세그먼트의 [`-bind`](/consul/commands/agent#_bind) 주소에서 rpc 포트에 별도의 RPC 리스너가 시작됩니다. 세그먼트의 바인드 주소가 [`-bind`](/consul/commands/agent#_bind) 주소와 다른 경우에만 유효합니다. 기본값은 false입니다.
server - 이 매개변수는 에이전트가 서버 모드인지 클라이언트 모드인지 제어합니다. 제공하면 에이전트가 Consul 서버로 작동합니다. 각 Consul 클러스터에는 최소한 하나의 서버가 있어야 하며 이상적으로는 데이터센터당 5개를 넘지 않아야 합니다. 모든 서버는 트랜잭션이 일관되고 선형화 가능한 방식으로 발생하도록 Raft 컨센서스 알고리즘에 참여합니다. 트랜잭션은 노드 장애 시 가용성을 보장하기 위해 모든 서버 노드에 유지되는 클러스터 상태를 수정합니다. 서버 노드는 또한 다른 데이터센터의 서버 노드와 WAN gossip 풀에 참여합니다. 서버는 다른 데이터센터의 게이트웨이 역할을 하며 적절하게 RPC 트래픽을 전달합니다.
server_rejoin_age_max - 클러스터에 다시 조인하려는 오래된 서버의 허용 최대 수명을 제어합니다. 서버가 이 기간 동안 실행되지 않았다면 운영자가 데이터 디렉터리에 있는 server_metadata.json 파일을 수동으로 삭제하여 개입할 때까지 다시 시작을 거부합니다. 이는 폐기된 서버가 실수로 다시 시작되어 발생하는 클러스터 불안정으로부터 보호하기 위한 것입니다. 기본값은 168h(7d와 동일)이고 최소값은 6h입니다.
Enterprise
- 이 매개변수는 서버가 Raft 쿼럼에 참여하지 않고 데이터 복제 스트림만 수신하게 합니다. 서버에 대한 읽기 부하가 높은 경우 클러스터에 읽기 확장성을 추가하는 데 사용할 수 있습니다.
session_ttl_min 허용되는 최소 세션 TTL입니다. 이는 지정된 한도보다 짧은 TTL로 세션이 생성되지 않도록 보장합니다. 클라이언트가 빈번하지 않은 하트비트를 보내도록 권장하려면 이 한도를 기본값 이상으로 유지할 것을 권장합니다. 기본값은 10s입니다.
skip_leave_on_interrupt 이는 leave_on_terminate와 유사하지만 인터럽트 처리에만 영향을 줍니다. Consul이 인터럽트 신호(터미널에서 Control-C 누르기 등)를 받으면 Consul은 우아하게 클러스터를 떠납니다. 이를 true로 설정하면 해당 동작이 비활성화됩니다. 이 기능의 기본 동작은 에이전트가 클라이언트로 실행 중인지 서버로 실행 중인지에 따라 다릅니다(Consul 0.7 이전에는 기본값이 무조건 false였습니다). 클라이언트 모드 에이전트에서는 기본값이 false이고 서버 모드 에이전트에서는 기본값이 true입니다(즉, 서버에서 Ctrl-C를 누르면 서버가 클러스터와 쿼럼에 유지되고 클라이언트에서 Ctrl-C를 누르면 우아하게 떠남).
translate_wan_addrs true로 설정하면 Consul은 원격 데이터센터의 노드에 대한 DNS 및 HTTP 요청을 처리할 때 노드의 구성된 WAN 주소를 선호합니다. 이는 노드가 자체 데이터센터 내에서는 로컬 주소로, 다른 데이터센터에서는 WAN 주소로 도달될 수 있게 해주며 혼합 네트워크가 있는 하이브리드 설정에서 유용합니다. 기본적으로 비활성화되어 있습니다.
Consul 0.7 이상부터 HTTP 요청에 대한 응답의 노드 주소도 원격 데이터센터의 노드를 쿼리할 때 노드의 구성된 WAN 주소를 선호합니다. 번역이 활성화되면 모든 응답에 X-Consul-Translate-Addresses 헤더가 있어 클라이언트가 주소가 번역될 수 있음을 알 수 있습니다. 응답의 TaggedAddresses 필드에는 번역과 관계없이 해당 주소를 알아야 하는 클라이언트를 위한 lan 주소도 있습니다.
다음 엔드포인트는 주소를 번역합니다:
* [`/v1/catalog/nodes`](/consul/api-docs/catalog#list-nodes)
* [`/v1/catalog/node/<node>`](/consul/api-docs/catalog#retrieve-map-of-services-for-a-node)
* [`/v1/catalog/service/<service>`](/consul/api-docs/catalog#list-nodes-for-service)
* [`/v1/health/service/<service>`](/consul/api-docs/health#list-nodes-for-service)
* [`/v1/query/<query or name>/execute`](/consul/api-docs/query#execute-prepared-query)
unix_sockets - 이는 Consul이 생성하는 Unix 도메인 소켓 파일의 소유권과 권한을 조정할 수 있게 해줍니다. 도메인 소켓은 HTTP 주소가 unix:// 접두사로 구성된 경우에만 사용됩니다.
이 옵션은 운영 체제에 따라 다른 영향을 미칠 수 있다는 점에 유의하는 것이 중요합니다. Linux는 일반적으로 소켓 파일 권한을 준수하지만 많은 BSD 변형은 소켓 파일 자체의 권한을 무시합니다. 특정 배포판에서 이 기능을 테스트하는 것이 중요합니다. 이 기능은 현재 Windows 호스트에서는 작동하지 않습니다.
이 구조 내에서 다음 옵션이 유효하며 Consul이 생성하는 모든 소켓에 전역으로 적용됩니다:
* [](/consul/docs/reference/agent/configuration-file/general#)[`user`](/consul/docs/reference/agent/configuration-file/general#user) \- 소켓 파일을 소유할 사용자의 이름 또는 ID.
* [](/consul/docs/reference/agent/configuration-file/general#)[`group`](/consul/docs/reference/agent/configuration-file/general#group) \- 소켓 파일의 그룹 ID 소유권. 이 옵션은 현재 숫자 ID만 지원합니다.
* [](/consul/docs/reference/agent/configuration-file/general#)[`mode`](/consul/docs/reference/agent/configuration-file/general#mode-1) \- 파일에 설정할 권한 비트.
use_streaming_backend 기본값은 true입니다. 활성화되면 Consul 클라이언트 에이전트는 스트리밍을 지원하는 엔드포인트에 대해 기존의 blocking 쿼리 대신 스트리밍 rpc를 사용합니다. 어떤 클라이언트도 use_streaming_backend를 활성화하기 전에 모든 서버가 rpc.enable_streaming을 활성화해야 합니다.
watches - Watches는 특정 데이터 보기가 업데이트될 때 외부 프로세스를 자동으로 호출할 수 있게 해주는 watch 사양 목록입니다. 자세한 내용은 watch 문서를 참조하세요. 구성이 재로드될 때 Watches를 수정할 수 있습니다.
예제 (Examples)
다음 예제는 일반적인 Consul 에이전트 구성 패턴을 보여줍니다.
바인드 주소 (Bind address)
예제 템플릿:
HCLJSON
bind_addr = "{{ GetPrivateInterfaces | include \"network\" \"10.0.0.0/8\" | attr \"address\" }}"
{
"bind_addr": "{{ GetPrivateInterfaces | include \"network\" \"10.0.0.0/8\" | attr \"address\" }}"
}
CORS
HTTP API 엔드포인트에서 CORS를 활성화하려면 다음 구성을 사용하세요.
<CodeTabs heading="Enable CORS on the HTTP API endpoints">
```hcl
http_config {
response_headers {
Access-Control-Allow-Origin = "*"
}
}
```
```json
{
"http_config": {
"response_headers": {
"Access-Control-Allow-Origin": "*"
}
}
}
```
</CodeTabs>