Apigee Edge 문서입니다.
Go to the
Apigee X 문서로 이동합니다. info
이 문서에서는 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
- Edge API
Edge UI
Edge UI를 사용하여 가상 호스트를 구성하려면 다음 단계를 따르세요.
- Edge UI에 로그인합니다.
- 관리 > 가상 호스트 로 이동합니다.
- 이 변경사항을 적용할 특정 환경 을 선택합니다.
- 새 I/O 제한 시간 값을 구성할 특정 가상 호스트를 선택합니다.
- 속성에서 프록시 읽기 제한 시간 값을 초 단위로 업데이트합니다.
예를 들어 제한 시간을 120초로 변경하려면 다음 그림과 같이 120을 입력합니다.
- 변경사항을 저장합니다.
Edge API
Edge API를 사용하여 가상 호스트를 구성하려면 다음 단계를 따르세요.
- 아래와 같이
가상 호스트 가져오기 API를 사용하여 현재 가상 호스트 구성을 가져옵니다.
퍼블릭 클라우드 사용자
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>프라이빗 클라우드 사용자
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 } - 초 단위의 값을 사용하여
properties아래의 기존 가상 호스트 구성 JSON 페이로드에proxy_read_timeout속성을 추가합니다.예를 들어 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>
프라이빗 클라우드 사용자
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 제한 시간이 성공적으로 수정되었는지 확인하는 방법을 설명합니다.
- 아래와 같이
가상 호스트 가져오기 API를 실행하여
virtualhost구성을 가져옵니다.퍼블릭 클라우드 사용자
curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>프라이빗 클라우드 사용자
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이 새 값인 101초로 설정되었음을 확인합니다.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
- 라우터가 두 개 이상인 경우 모든 라우터에서 위의 단계를 반복합니다.
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 제한 시간이 성공적으로 수정되었는지 확인하는 방법을 설명합니다.
라우터에서 I/O 제한 시간을 설정하는 데 토큰
conf_load_balancing_load.balancing.driver.proxy.read.timeout을 사용하더라도 실제 속성 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;
위의 예시 출력에서 기본 가상 호스트의 구성 파일인
0-default.conf에서proxy_read_timeout속성이 새 값인 120으로 설정되었음을 확인합니다. 이는 라우터에서 I/O 제한 시간 이 120초로 성공적으로 구성되었음을 나타냅니다. proxy_read_timeout속성의 이전 값이 계속 표시되면 라우터에서 I/O 제한 시간 구성에 설명된 모든 단계를 올바르게 따랐는지 확인합니다. 단계를 누락한 경우 모든 단계를 다시 올바르게 반복합니다.- 그래도 I/O 제한 시간을 수정할 수 없는 경우 Apigee Edge 지원팀에 문의하세요.
다음 단계
메시지 프로세서에서 I/O 제한 시간 구성에 대해 알아봅니다.