현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동 정보
이 문서에서는 Apigee Edge 라우터에서 I/O 제한 시간을 구성하는 방법을 설명합니다.
라우터의 I/O 시간 제한은 연결을 설정하고 메시지 프로세서에 요청을 전송한 후 라우터가 메시지 프로세서로부터 응답을 받기 위해 대기하는 시간을 나타냅니다. 라우터의 I/O 시간 초과의 기본값은 57초입니다.
라우터의 I/O 시간 제한은 필요에 따라 기본값인 57초에서 늘리거나 줄일 수 있습니다. 다음과 같은 방법으로 구성할 수 있습니다.
- 가상 호스트에서
- 라우터에서
다음 속성은 라우터의 I/O 시간 제한을 제어합니다.
속성 이름 | 위치 | 설명 |
---|---|---|
proxy_read_timeout
|
가상 호스트 |
연결을 설정하고 메시지 프로세서에 요청을 전송한 후 라우터가 메시지 프로세서로부터 응답을 받기 위해 대기하는 최대 시간을 지정합니다. 이 제한 시간 내에 메시지 프로세서의 응답이 없으면 라우터가 타임아웃됩니다. 기본적으로 이 속성은 라우터의 특정 가상 호스트의 새 제한 시간 값을 사용하여 이 속성을 수정하면 해당 가상 호스트를 사용하는 API 프록시만 영향을 받습니다. |
conf_load_balancing_load.balancing.driver.proxy.read.timeout
|
라우터 |
연결을 설정하고 메시지 프로세서에 요청을 전송한 후 라우터가 메시지 프로세서로부터 응답을 받기 위해 대기하는 최대 시간을 지정합니다. 이 제한 시간 내에 메시지 프로세서의 응답이 없으면 라우터가 타임아웃됩니다. 이 속성은 라우터의 모든 가상 호스트에 사용됩니다. 이 속성의 기본값은 57초입니다. 아래의 라우터에서 I/O 시간 제한 구성에 설명된 대로 이 속성을 수정하거나 다음 표기법을 사용하여 이 속성의 시간 간격을 초가 아닌 다른 값으로 설정할 수 있습니다. ms: milliseconds s: seconds (default) m: minutes h: hours d: days w: weeks M: months (length of 30 days) y: years (length of 365 days) |
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout
|
라우터 |
라우터가 연결을 설정하고 각 메시지 프로세서에 요청을 전송한 후 모든 메시지 프로세서로부터 응답을 수신하기 위해 기다리는 총 시간을 지정합니다. Edge 설치에 여러 메시지 프로세서가 있고 오류 발생 시 재시도가 사용 설정된 경우에 적용되는 옵션입니다. 다음 중 하나의 값을 갖습니다.
|
시작하기 전에
이 문서의 단계를 수행하기 전에 다음 주제를 이해해야 합니다.
- 가상 호스트 속성에 익숙하지 않으면 가상 호스트 속성 참조를 읽어보세요.
- Private Cloud의 Edge 속성 구성에 익숙하지 않으면 Edge 구성 방법을 참조하세요.
- I/O 제한 시간 구성 권장사항 권장사항을 준수해야 합니다.
가상 호스트에서 I/O 제한 시간 구성
이 섹션에서는 조직 및 환경과 연결된 가상 호스트에서 I/O 제한 시간을 구성하는 방법을 설명합니다. I/O 제한 시간은 초 단위로 I/O 제한 시간 값을 나타내는 proxy_read_timeout
속성을 통해 가상 호스트에서 구성할 수 있습니다.
다음 방법 중 하나를 사용하여 가상 호스트를 구성할 수 있습니다.
- Edge UI
- 에지 API
Edge UI
Edge UI를 사용하여 가상 호스트를 구성하려면 다음 안내를 따르세요.
- Edge UI에 로그인합니다.
- 관리자 > 가상 호스트로 이동합니다.
- 변경하려는 특정 환경을 선택합니다.
- 새 I/O 시간 제한 값을 구성할 특정 가상 호스트를 선택합니다.
- 속성에서 프록시 읽기 시간 제한 값을 초 단위로 업데이트합니다.
예를 들어 제한 시간을 120초로 변경하려면 다음 그림과 같이 120을 입력합니다.
- 변경사항을 저장합니다.
에지 API
Edge API를 사용하여 가상 호스트를 구성하려면 다음 안내를 따르세요.
- 아래와 같이
Get virtual host API를 사용하여 현재 가상 호스트 구성을 가져옵니다.
퍼블릭 클라우드 사용자
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Private Cloud 사용자
curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
각 항목의 의미는 다음과 같습니다.
{organization-name}은 조직 이름입니다.
{environment-name}은 환경 이름입니다.
{virtualhost-name}은 가상 호스트의 이름입니다.
샘플 virtualhost 구성
{ "hostAliases": [ "api.myCompany,com" ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
proxy_read_timeout
속성을 기존 가상 호스트 구성 JSON 페이로드에 초 단위 값과 함께properties
아래에 추가합니다.예를 들어 I/O 제한 시간을 120초로 변경하려면 아래와 같이
properties
코드 블록을 추가합니다.업데이트된 가상 호스트 구성 샘플
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
- 업데이트된 가상 호스트 구성을 파일에 저장합니다. 예를 들면
virtualhost-payload.json
입니다. - 다음과 같이
가상 호스트 업데이트 API를 사용하여
virtualhost
구성을 변경사항으로 업데이트합니다.퍼블릭 클라우드 사용자
curl -v -X POST Content-Type: application/json https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
Private Cloud 사용자
curl -v -X POST Content-Type: application/json http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
각 항목의 의미는 다음과 같습니다.
{organization-name}은 조직 이름입니다.
{environment-name}은 환경 이름입니다.
{virtualhost-name}은 가상 호스트의 이름입니다.
가상 호스트의 I/O 제한 시간 확인
이 섹션에서는 Edge API를 사용하여 가상 호스트에서 I/O 제한 시간이 수정되었는지 확인하는 방법을 설명합니다.
- 아래와 같이
Get virtual host API를 실행하여
virtualhost
구성을 가져옵니다.퍼블릭 클라우드 사용자
curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Private Cloud 사용자
curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
각 항목의 의미는 다음과 같습니다.
{organization-name}은 조직 이름입니다.
{environment-name}은 환경 이름입니다.
{virtualhost-name}은 가상 호스트의 이름입니다.
proxy_read_timeout
속성이 새 값으로 설정되었는지 확인합니다.업데이트된 가상 호스트 구성 샘플
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
위의 예에서는
proxy_read_timeout
이 새 값인 120초로 설정되었습니다.proxy_read_timeout,
의 이전 값이 계속 표시되면 가상 호스트에서 I/O 제한 시간 구성에 설명된 모든 단계를 올바르게 수행했는지 확인합니다. 누락된 단계가 있으면 모든 단계를 다시 올바르게 반복합니다.- 그래도 I/O 제한 시간을 수정할 수 없으면 Apigee Edge 지원팀에 문의하세요.
라우터의 I/O 시간 제한 구성
이 섹션에서는 라우터에서 I/O 시간 제한을 구성하는 방법을 설명합니다. I/O 제한 시간은 초 단위로 I/O 제한 시간 값을 나타내는 라우터 속성 conf_load_balancing_load.balancing.driver.proxy.read.timeout
를 통해 구성할 수 있습니다.
라우터에서 I/O 시간 제한을 구성하려면 다음 단계를 따르세요.
- 라우터 머신에서 편집기에서 다음 파일을 엽니다. 아직 없으면 새로 만듭니다.
/opt/apigee/customer/application/router.properties
예를 들어
vi
로 파일을 열려면 다음 명령어를 입력합니다.vi /opt/apigee/customer/application/router.properties
properties
파일에 다음 형식의 줄을 추가하고time_in_seconds
값을 대체합니다.- 변경사항을 저장합니다.
- 아래와 같이 이 속성 파일을
apigee
사용자가 소유하고 있는지 확인합니다.chown apigee:apigee /opt/apigee/customer/application/router.properties
- 아래와 같이 라우터를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- 라우터가 2개 이상인 경우 모든 라우터에서 위 단계를 반복합니다.
conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
예를 들어 라우터의 I/O 시간 제한을 120초로 변경하려면 다음 줄을 추가합니다.
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
또한 I/O 제한 시간을 분 단위로 수정할 수 있습니다. 예를 들어 제한 시간을 2분으로 변경하려면 다음 줄을 추가합니다.
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
라우터의 I/O 시간 초과 확인
이 섹션에서는 라우터에서 I/O 시간 제한이 성공적으로 수정되었는지 확인하는 방법을 설명합니다.
conf_load_balancing_load.balancing.driver.proxy.read.timeout
토큰을 사용하여 라우터에 I/O 시간 제한을 설정하더라도 실제 속성 proxy_read_timeout
가 새 값으로 설정되었는지 확인해야 합니다.
/opt/nginx/conf.d
디렉터리에서proxy_read_timeout
속성을 검색하여 다음과 같이 새 값으로 설정되어 있는지 확인합니다.grep -ri "proxy_read_timeout" /opt/nginx/conf.d
- 라우터에 새 I/O 시간 제한 값이 성공적으로 설정되면 위 명령어는 모든 가상 호스트 구성 파일에 새 값을 표시합니다.
다음은 I/O 제한 시간이 120초일 때 위
grep
명령어를 실행한 샘플 결과입니다./opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120; /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
위의 출력 예에서
proxy_read_timeout
속성이 기본 가상 호스트의 구성 파일인0-default.conf
의 새 값 120으로 설정된 것을 볼 수 있습니다. 이는 라우터에서 I/O 시간 제한이 120초로 구성되었음을 나타냅니다. proxy_read_timeout
속성의 이전 값이 계속 표시되면 라우터에서 I/O 제한 시간 구성에 설명된 모든 단계를 올바르게 수행했는지 확인합니다. 누락된 단계가 있으면 모든 단계를 다시 올바르게 반복합니다.- 그래도 I/O 제한 시간을 수정할 수 없으면 Apigee Edge 지원팀에 문의하세요.
다음 단계
메시지 프로세서의 I/O 시간 제한 구성에 대해 알아보기