라우터에서 I/O 제한 시간 구성

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 가상 호스트

연결을 설정하고 메시지 프로세서에 요청을 보낸 후 라우터가 메시지 프로세서로부터 응답을 받기 위해 대기하는 최대 시간을 지정합니다.

이 제한 시간 내에 메시지 프로세서로부터 응답이 없으면 라우터가 제한 시간 초과됩니다.

기본적으로 이 속성은 라우터에서 conf_load_balancing_load.balancing.driver.proxy.read.timeout 속성에 설정된 값을 가져옵니다. 기본값은 57초 입니다.

특정 가상 호스트의 새 제한 시간 값으로 이 속성을 수정하면 해당 특정 가상 호스트를 사용하는 API 프록시만 영향을 받습니다.

conf_load_balancing_load.balancing.driver.proxy.read.timeout 라우터

연결을 설정하고 메시지 프로세서에 요청을 보낸 후 라우터가 메시지 프로세서로부터 응답을 받기 위해 대기하는 최대 시간을 지정합니다.

이 제한 시간 내에 메시지 프로세서로부터 응답이 없으면 라우터가 제한 시간 초과됩니다.

이 속성은 이 라우터의 모든 가상 호스트에 사용됩니다.

이 속성의 기본값은 57초 입니다.

아래 라우터에서 I/O 제한 시간 구성에 설명된 대로 이 속성을 수정하거나 가상 호스트 수준에서 proxy_read_timeout 속성을 설정하여 이 값을 덮어쓸 수 있습니다.

다음 표기법을 사용하여 이 속성의 시간 간격을 초 이외의 값으로 설정할 수 있습니다.

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 설치에 여러 메시지 프로세서가 있고 오류 발생 시 재시도가 사용 설정된 경우에 적용됩니다. 다음 중 하나의 값을 갖습니다.

  • conf_load_balancing_load.balancing.driver.proxy.read.timeout의 현재 값
  • 기본값인 57초

conf_load_balancing_load.balancing.driver.proxy.read.timeout 속성과 마찬가지로 기본값 (초) 이외의 시간 간격을 지정할 수 있습니다.

시작하기 전에

이 문서의 단계를 사용하기 전에 다음 주제를 이해해야 합니다.

가상 호스트에서 I/O 제한 시간 구성

이 섹션에서는 조직 및 환경과 연결된 가상 호스트에서 I/O 제한 시간을 구성하는 방법을 설명합니다. I/O 제한 시간은 초 단위의 I/O 제한 시간 값을 나타내는 proxy_read_timeout 속성을 통해 가상 호스트에서 구성할 수 있습니다.

다음 방법 중 하나를 사용하여 가상 호스트를 구성할 수 있습니다.

  • Edge UI
  • Edge API

Edge UI

Edge UI를 사용하여 가상 호스트를 구성하려면 다음 단계를 따르세요.

  1. Edge UI에 로그인합니다.
  2. 관리 > 가상 호스트 로 이동합니다.
  3. 이 변경사항을 적용할 특정 환경 을 선택합니다.
  4. 새 I/O 제한 시간 값을 구성할 특정 가상 호스트를 선택합니다.
  5. 속성에서 프록시 읽기 제한 시간 값을 초 단위로 업데이트합니다.

    예를 들어 제한 시간을 120초로 변경하려면 다음 그림과 같이 120을 입력합니다.

    프록시 읽기 제한 시간 값 120

  6. 변경사항을 저장합니다.

Edge API

Edge API를 사용하여 가상 호스트를 구성하려면 다음 단계를 따르세요.

  1. 아래와 같이 가상 호스트 가져오기 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
        }
  2. 초 단위의 값을 사용하여 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
    }
  3. 업데이트된 가상 호스트 구성을 파일에 저장합니다. 예를 들어, virtualhost-payload.json입니다.
  4. 다음과 같이 가상 호스트 업데이트 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 제한 시간이 성공적으로 수정되었는지 확인하는 방법을 설명합니다.

  1. 아래와 같이 가상 호스트 가져오기 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}은 가상 호스트의 이름입니다.

  2. 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초로 설정되었음을 확인합니다.

  3. proxy_read_timeout,의 이전 값이 계속 표시되면 가상 호스트에서 I/O 제한 시간 구성에 설명된 모든 단계를 올바르게 따랐는지 확인합니다. 단계를 누락한 경우 모든 단계를 다시 올바르게 반복합니다.
  4. 그래도 I/O 제한 시간을 수정할 수 없는 경우 Apigee Edge 지원팀에 문의하세요.

라우터에서 I/O 제한 시간 구성

이 섹션에서는 라우터에서 I/O 제한 시간을 구성하는 방법을 설명합니다. I/O 제한 시간은 초 단위의 I/O 제한 시간 값을 나타내는 라우터 속성 conf_load_balancing_load.balancing.driver.proxy.read.timeout을 통해 구성할 수 있습니다.

라우터에서 I/O 제한 시간을 구성하려면 다음 단계를 따르세요.

  1. 라우터 머신에서 편집기로 다음 파일을 엽니다. 아직 없는 경우 파일을 만듭니다.
    /opt/apigee/customer/application/router.properties

    예를 들어 파일을 열려면 vi 다음 명령어를 입력합니다.

    vi /opt/apigee/customer/application/router.properties
  2. 다음 형식으로 properties 파일에 행을 추가하고 time_in_seconds 값을 대체합니다.
  3. 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
  4. 변경사항을 저장합니다.
  5. 이 속성 파일이 아래와 같이 apigee 사용자가 소유하는지 확인합니다.
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  6. 아래와 같이 라우터를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. 라우터가 두 개 이상인 경우 모든 라우터에서 위의 단계를 반복합니다.

라우터에서 I/O 제한 시간 확인

이 섹션에서는 라우터에서 I/O 제한 시간이 성공적으로 수정되었는지 확인하는 방법을 설명합니다.

라우터에서 I/O 제한 시간을 설정하는 데 토큰 conf_load_balancing_load.balancing.driver.proxy.read.timeout을 사용하더라도 실제 속성 proxy_read_timeout이 새 값으로 설정되었는지 확인해야 합니다.

  1. /opt/nginx/conf.d디렉터리에서 proxy_read_timeout 속성을 검색하고 다음과 같이 새 값으로 설정되었는지 확인합니다.
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
  2. 라우터에서 새 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초로 성공적으로 구성되었음을 나타냅니다.

  3. proxy_read_timeout 속성의 이전 값이 계속 표시되면 라우터에서 I/O 제한 시간 구성에 설명된 모든 단계를 올바르게 따랐는지 확인합니다. 단계를 누락한 경우 모든 단계를 다시 올바르게 반복합니다.
  4. 그래도 I/O 제한 시간을 수정할 수 없는 경우 Apigee Edge 지원팀에 문의하세요.

다음 단계

메시지 프로세서에서 I/O 제한 시간 구성에 대해 알아봅니다.