Edge Microgateway의 작업 및 구성 참조

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

Edge Micro Gateway v. 2.4.x

개요

이 주제에서는 모니터링, 로깅, 디버깅을 포함하여 Edge Micro Gateway를 관리하고 구성하는 방법을 설명합니다.

구성 변경

알아야 할 구성 파일은 다음과 같습니다.

  • 기본 시스템 구성 파일
  • 새로 초기화된 Edge Micro Gateway 인스턴스의 기본 구성 파일
  • 실행 중인 인스턴스의 동적 구성 파일

이 섹션에서는 이러한 파일과 파일을 변경하는 데 알아야 할 사항을 설명합니다. 구성 파일 설정에 대한 자세한 내용은 Edge Micro Gateway 구성 참조를 확인하세요.

기본 시스템 구성 파일

Edge Micro Gateway를 설치하면 기본 시스템 구성 파일이 여기에 배치됩니다.

[prefix]/lib/node_modules/edgemicro/config/default.yaml

여기서 [prefix]npm 프리픽스 디렉터리입니다. Edge Micro Gateway가 설치된 위치를 참조하세요.

시스템 구성 파일을 변경하면 Edge Microgateway를 다시 초기화, 구성, 다시 시작해야 합니다.

  1. edgemicro init번으로 전화 걸기
  2. edgemicro configure [params]번으로 전화 걸기
  3. edgemicro start [params]번으로 전화 걸기

새로 초기화된 Edge Micro Gateway 인스턴스의 기본 구성 파일

edgemicro init를 실행하면 시스템 구성 파일(위에서 설명)인 default.yaml이 ~/.edgemicro 디렉터리에 배치됩니다.

~/.edgemicro에서 구성 파일을 변경하는 경우 Edge Micro Gateway를 다시 구성하고 다시 시작해야 합니다.

  1. edgemicro stop
  2. edgemicro configure [params]
  3. edgemicro start [params]

실행 중인 인스턴스의 동적 구성 파일

edgemicro configure [params]를 실행하면 동적 구성 파일이 ~/.edgemicro에 생성됩니다. 파일 이름은 [org]-[env]-config.yaml 패턴에 따라 지정됩니다. 여기서 orgenv는 Apigee Edge 조직 및 환경 이름입니다. 이 파일을 사용하여 구성을 변경한 다음 다운타임 없이 다시 로드할 수 있습니다. 예를 들어 플러그인을 추가하고 구성하는 경우 아래 설명과 같이 다운타임 없이 구성을 새로고침할 수 있습니다.

Edge Micro Gateway가 실행 중인 경우 (다운타임 없는 옵션):

  1. Edge Micro Gateway 구성을 새로고침합니다.
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    각 항목의 의미는 다음과 같습니다.

    • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
    • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
    • key는 이전에 구성 명령어에서 반환된 키입니다.
    • secret는 이전에 구성 명령어에서 반환된 키입니다.

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

Edge Micro Gateway가 중지된 경우:

  1. Edge Micro Gateway를 다시 시작합니다.
    edgemicro start -o [org] -e [env] -k [key] -s [secret]
    

    각 항목의 의미는 다음과 같습니다.

    • org은 Edge 조직 이름입니다 (조직 관리자여야 함).
    • env은 조직의 환경 (예: 테스트 또는 프로덕션)입니다.
    • key는 이전에 구성 명령어에서 반환된 키입니다.
    • secret는 이전에 구성 명령어에서 반환된 키입니다.

    edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

다음은 구성 파일의 예입니다. 구성 파일 설정에 대한 자세한 내용은 Edge Micro Gateway 구성 참조를 확인하세요.

edge_config:
  bootstrap: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test
  jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://docs-test.apigee.net/edgemicro-auth/products'
edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
headers:
  x-forwarded-for: true
  x-forwarded-host: true
  x-request-id: true
  x-response-time: true
  via: true
oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey'
analytics:
  uri: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test

환경 변수 설정

Edge 조직 및 환경의 값이 필요한 명령줄 인터페이스 명령어와 Edge Micro Gateway를 시작하는 데 필요한 키와 보안 비밀은 다음 환경 변수에 저장할 수 있습니다.

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

이러한 변수를 설정하는 것은 선택사항입니다. 이 매개변수를 설정하면 명령줄 인터페이스 (CLI)를 사용하여 Edge Micro Gateway를 구성하고 시작할 때 값을 지정할 필요가 없습니다.

Edge Micro Gateway 서버에서 SSL 구성

SSL을 사용하도록 Micro Gateway 서버를 구성할 수 있습니다. 예를 들어 SSL을 구성한 경우 다음과 같이 'https' 프로토콜을 사용하여 Edge Micro Gateway를 통해 API를 호출할 수 있습니다.

https://localhost:8000/myapi

Micro Gateway 서버에서 SSL을 구성하려면 다음 단계를 따르세요.

  1. openssl 유틸리티 또는 선호하는 방법을 사용하여 SSL 인증서와 키를 생성하거나 가져올 수 있습니다.
  2. Edge Micro Gateway 구성 파일에 edgemicro:ssl 속성을 추가합니다. 전체 옵션 목록은 아래 표를 참고하세요. Edge Micro Gateway 구성 수정에 대한 자세한 내용은 구성 변경을 참조하세요. 예:
     edgemicro:
         ssl:
             key: <absolute path to the SSL key file>
             cert: <absolute path to the SSL cert file>
             passphrase: admin123 #option added in v2.2.2
             rejectUnauthorized: true #option added in v2.2.2
             requestCert: true 
    
  3. Edge Micro Gateway를 다시 시작합니다. 수정한 구성 파일(기본 파일 또는 런타임 구성 파일)에 따라 구성 변경에 설명된 단계를 따릅니다.

다음은 SSL이 구성된 구성 파일의 Edgemicro 섹션 예입니다.

edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
  ssl:
    key: /MyHome/SSL/em-ssl-keys/server.key
    cert: /MyHome/SSL/em-ssl-keys/server.crt
    passphrase: admin123 #option added in v2.2.2
    rejectUnauthorized: true #option added in v2.2.2

다음은 지원되는 모든 서버 옵션의 목록입니다.

옵션 설명
key ca.key 파일의 경로 (PEM 형식)입니다.
cert ca.cert 파일의 경로 (PEM 형식)입니다.
pfx PFX 형식의 클라이언트의 비공개 키, 인증서, CA 인증서가 포함된 pfx 파일의 경로입니다.
passphrase 비공개 키 또는 PFX의 암호가 포함된 문자열입니다.
ca PEM 형식의 신뢰할 수 있는 인증서 목록이 포함된 파일의 경로입니다.
ciphers 사용할 암호화를 설명하는 문자열이며 ':'으로 구분합니다.
rejectUnauthorized true인 경우 제공된 CA 목록과 대조하여 서버 인증서가 확인됩니다. 확인에 실패하면 오류가 반환됩니다.
secureProtocol 사용할 SSL 메서드입니다. 예를 들어 SSLv3_method를 사용하여 SSL을 버전 3으로 강제 적용합니다.
servername SNI (서버 이름 표시) TLS 확장 프로그램의 서버 이름입니다.
requestCert 양방향 SSL의 경우 true, 단방향 SSL의 경우 false입니다.

클라이언트 SSL/TLS 옵션 사용

대상 엔드포인트에 연결할 때 Edge Micro Gateway를 TLS 또는 SSL 클라이언트로 구성할 수 있습니다. Micro Gateway 구성 파일에서 대상 요소를 사용하여 SSL/TLS 옵션을 설정합니다.

이 예에서는 모든 호스트에 적용될 설정을 제공합니다.

targets:
   ssl:
     client:
       key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
       cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

이 예에서 설정은 지정된 호스트에만 적용됩니다.

targets:
   host: 'myserver.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

다음은 TLS의 예입니다.

targets:
   host: 'myserver.example.com'
   tls:
     client:
       pfx: /Users/myname/twowayssl/ssl/client.pfx
       passphrase: admin123
       rejectUnauthorized: true

다음은 지원되는 모든 클라이언트 옵션의 목록입니다.

옵션 설명
pfx PFX 형식의 클라이언트의 비공개 키, 인증서, CA 인증서가 포함된 pfx 파일의 경로입니다.
key ca.key 파일의 경로 (PEM 형식)입니다.
passphrase 비공개 키 또는 PFX의 암호가 포함된 문자열입니다.
cert ca.cert 파일의 경로 (PEM 형식)입니다.
ca PEM 형식의 신뢰할 수 있는 인증서 목록이 포함된 파일의 경로입니다.
ciphers 사용할 암호화를 설명하는 문자열이며 ':'으로 구분합니다.
rejectUnauthorized true인 경우 제공된 CA 목록과 대조하여 서버 인증서가 확인됩니다. 확인에 실패하면 오류가 반환됩니다.
secureProtocol 사용할 SSL 메서드입니다. 예를 들어 SSLv3_method를 사용하여 SSL을 버전 3으로 강제 적용합니다.
servername SNI (서버 이름 표시) TLS 확장 프로그램의 서버 이름입니다.

Edgemicro 인증 프록시 맞춤설정

기본적으로 Edge Micro Gateway는 Apigee Edge에 배포된 프록시를 OAuth2 인증에 사용합니다. 이 프록시는 edgemicro configure를 처음 실행할 때 배포됩니다. 이 프록시의 기본 구성을 변경하여 JSON 웹 토큰 (JWT)에 커스텀 클레임 지원을 추가하고, 토큰 만료를 구성하고, 갱신 토큰을 생성할 수 있습니다. 자세한 내용은 GitHub의 edgemicro-auth 페이지를 참조하세요.

커스텀 인증 서비스 사용

기본적으로 Edge Micro Gateway는 Apigee Edge에 배포된 프록시를 OAuth2 인증에 사용합니다. 이 프록시는 edgemicro configure를 처음 실행할 때 배포됩니다. 기본적으로 이 프록시의 URL은 Edge Microgateway 구성 파일에서 다음과 같이 지정됩니다.

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

자체 커스텀 서비스를 사용하여 인증을 처리하려면 구성 파일의 authUri 값이 서비스를 가리키도록 변경합니다. 예를 들어 LDAP를 사용하여 ID를 확인하는 서비스가 있을 수 있습니다.

로그 파일 관리

Edge Micro Gateway는 각 요청 및 응답에 대한 정보를 로깅합니다. 로그 파일은 디버깅 및 문제 해결에 유용한 정보를 제공합니다.

로그 파일 저장 위치

기본적으로 로그 파일은 /var/tmp에 저장됩니다.

기본 로그 파일 디렉터리를 변경하는 방법

로그 파일이 저장된 디렉터리는 Edge Micro Gateway 구성 파일에 지정됩니다. 구성 변경에 관한 자세한 내용은 구성 변경을 참고하세요.

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

dir 값을 변경하여 다른 로그 파일 디렉터리를 지정합니다.

콘솔에 로그 보내기

로그 정보가 로그 파일 대신 표준 출력으로 전송되도록 로깅을 구성할 수 있습니다. 다음과 같이 to_console 플래그를 true로 설정합니다.

edgemicro:
  logging:
    to_console: true  

이 설정을 사용하면 로그가 표준 출력으로 전송됩니다. 현재 stdout과 로그 파일 모두에 로그를 보낼 수 없습니다.

로깅 수준을 설정하는 방법

info, warn, error라는 로그 수준을 설정할 수 있습니다. 정보 수준을 권장합니다. 모든 API 요청 및 응답을 로깅하며 기본값입니다.

로그 간격을 변경하는 방법

Edge Micro Gateway 구성 파일에서 이러한 간격을 구성할 수 있습니다. 구성 변경에 관한 자세한 내용은 구성 변경을 참고하세요.

구성 가능한 속성은 다음과 같습니다.

  • stats_log_interval: (기본값: 60) 통계 레코드가 API 로그 파일에 기록되는 간격(초)입니다.
  • rotate_interval: (기본값: 24) 로그 파일이 순환되는 간격(시간)입니다. 예를 들면 다음과 같습니다.
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

참고: 보관처리된 로그 파일은 압축되지 않습니다. 간격이 시작되면 새 타임스탬프로 새 로그 파일이 생성됩니다.

적절한 로그 파일 유지보수 권장사항

시간이 지남에 따라 로그 파일 데이터가 누적되므로 Apigee는 다음 방식을 채택하는 것이 좋습니다.

  • 로그 파일이 상당히 커질 수 있으므로 로그 파일 디렉터리에 공간이 충분한지 확인하세요. 아래의 로그 파일 저장 위치기본 로그 파일 디렉터리 변경 방법 섹션을 참고하세요.
  • 일주일에 한 번 이상 로그 파일을 삭제하거나 별도의 보관 디렉터리로 이동합니다.
  • 로그를 삭제하는 정책인 경우 CLI 명령어 edgemicro log -c를 사용하여 이전 로그를 삭제 (정리)할 수 있습니다.

로그 파일 이름 지정 규칙

각 Edge Micro Gateway 인스턴스는 세 가지 유형의 로그 파일을 생성합니다.

  • api - Edge Micro Gateway를 통해 전달되는 모든 요청 및 응답을 로깅합니다. API 카운터 (통계) 및 오류도 이 파일에 기록됩니다.
  • err - stderr로 전송된 모든 항목을 기록합니다.
  • out - stdout으로 전송된 모든 항목을 로깅합니다.

이름 지정 규칙은 다음과 같습니다.

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

예를 들면 다음과 같습니다.

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

로그 파일 콘텐츠 정보

추가된 위치: v2.3.3

기본적으로 로깅 서비스는 다운로드한 프록시, 제품, JSON 웹 토큰 (JWT)의 JSON을 생략합니다. 이러한 객체를 로그 파일로 출력하려면 Edge Micro Gateway를 시작할 때 DEBUG=*을 설정합니다. 예를 들면 다음과 같습니다.

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

참고: Windows에서는 SET DEBUG=*를 사용합니다.

'api' 로그 파일의 콘텐츠

'api' 로그 파일에는 Edge Micro Gateway를 통한 요청 및 응답 흐름에 대한 자세한 정보가 포함되어 있습니다. 'api' 로그 파일의 이름은 다음과 같습니다.

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Edge Micro Gateway에 대한 각 요청마다 4개의 이벤트가 'api' 로그 파일에 캡처됩니다.

  • 클라이언트의 수신 요청
  • 대상에 보낸 발신 요청
  • 대상에서 수신 응답
  • 고객에게 보내는 발신 응답

이러한 각 항목은 약식 표기법으로 표현되어 로그 파일이 더 간결해집니다. 다음은 4가지 이벤트를 각각 나타내는 4개의 샘플 항목입니다. 로그 파일에서 줄 번호는 다음과 같이 표시됩니다. 줄 번호는 문서에서 참고하기 위한 것이며 로그 파일에는 표시되지 않습니다.

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

하나씩 살펴보겠습니다.

1. 클라이언트에서 수신되는 요청 샘플:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 - Unix 날짜 스탬프
  • info - 컨텍스트에 따라 다릅니다. 로그 수준에 따라 정보, 경고 또는 오류가 될 수 있습니다. 통계 기록, 경고(경고), 오류(오류)일 수 있습니다.
  • req - 이벤트를 식별합니다. 이 경우 클라이언트의 요청입니다.
  • m - 요청에 사용된 HTTP 동사입니다.
  • u - URL에서 기본 경로 다음에 오는 부분입니다.
  • h - Edge Microgateway가 수신 대기하는 호스트 및 포트 번호입니다.
  • r - 클라이언트 요청이 시작된 원격 호스트 및 포트입니다.
  • i - 요청 ID입니다. 4개의 이벤트 항목 모두에서 이 ID가 공유됩니다. 각 요청에는 고유한 요청 ID가 할당됩니다. 요청 ID별로 로그 레코드의 상관관계를 파악하면 대상의 지연 시간에 대한 유용한 정보를 얻을 수 있습니다.
  • d - Edge Microgateway에서 요청을 수신한 후 경과된 시간(밀리초)입니다. 위의 예시에서는 요청 0에 대한 타겟의 응답이 7밀리초 후에 수신되고 (3행) 추가 4밀리초 후에 클라이언트로 전송되었습니다 (4행). 즉, 총 요청 지연 시간은 11밀리초였으며 이 중 대상에서 7밀리초, Edge Micro Gateway 자체에서 4밀리초를 사용했습니다.

2. 대상으로 전송된 발신 요청 샘플:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 - Unix 날짜 스탬프
  • info - 컨텍스트에 따라 다릅니다. 로그 수준에 따라 정보, 경고 또는 오류가 될 수 있습니다. 통계 기록, 경고(경고), 오류(오류)일 수 있습니다.
  • treq - 이벤트를 식별합니다. 여기서는 요청을 타겟팅합니다.
  • m - 대상 요청에 사용된 HTTP 동사입니다.
  • u - URL에서 기본 경로 다음에 오는 부분입니다.
  • h - 백엔드 대상의 호스트 및 포트 번호입니다.
  • i - 로그 항목의 ID입니다. 4개의 이벤트 항목 모두에서 이 ID가 공유됩니다.

3. 대상에서 수신되는 응답 샘플

1436403888672 info tres s=200, d=7, i=0

1436403888651 - Unix 날짜 스탬프

  • info - 컨텍스트에 따라 다릅니다. 로그 수준에 따라 정보, 경고 또는 오류가 될 수 있습니다. 통계 기록, 경고(경고), 오류(오류)일 수 있습니다.
  • tres - 이벤트를 식별합니다. 이 경우에는 응답을 타겟팅합니다.
  • s - HTTP 응답 상태입니다.
  • d - 소요 시간(밀리초)입니다. 대상이 API를 호출하는 데 걸린 시간입니다.
  • i - 로그 항목의 ID입니다. 4개의 이벤트 항목 모두에서 이 ID가 공유됩니다.

4. 클라이언트에 대한 발신 응답 샘플

1436403888676 info res s=200, d=11, i=0

1436403888651 - Unix 날짜 스탬프

  • info - 컨텍스트에 따라 다릅니다. 로그 수준에 따라 정보, 경고 또는 오류가 될 수 있습니다. 통계 기록, 경고(경고), 오류(오류)일 수 있습니다.
  • res - 이벤트를 식별합니다. 이 경우 클라이언트에 대한 응답입니다.
  • s - HTTP 응답 상태입니다.
  • d - 소요 시간(밀리초)입니다. 대상 API에 걸린 시간과 Edge Micro Gateway 자체에 걸린 시간을 포함하여 API 호출에 걸린 총 시간입니다.
  • i - 로그 항목의 ID입니다. 4개의 이벤트 항목 모두에서 이 ID가 공유됩니다.

로그 파일 일정

로그 파일은 rotate_interval 구성 속성에 지정된 간격으로 순환됩니다. 항목은 순환 간격이 만료될 때까지 동일한 로그 파일에 계속 추가됩니다. 하지만 Edge Micro Gateway가 다시 시작될 때마다 새 UID를 수신하고 이 UID를 사용하여 새로운 로그 파일 세트를 만듭니다. 올바른 로그 파일 유지관리 방법도 참조하세요.

Edge Micro Gateway 구성 참조

구성 파일의 위치

이 섹션에서 설명하는 구성 속성은 Edge Micro Gateway 구성 파일에 있습니다. 구성 변경에 관한 자세한 내용은 구성 변경을 참고하세요.

Edge_config 속성

이 설정은 Edge Micro Gateway 인스턴스와 Apigee Edge 간의 상호작용을 구성하는 데 사용됩니다.

  • 부트스트랩: (기본값: 없음) Apigee Edge에서 실행되는 Edge Micro Gateway 관련 서비스를 가리키는 URL입니다. Edge Micro Gateway는 이 서비스를 사용하여 Apigee Edge와 통신합니다. 이 URL은 edgemicro genkeys 공개 키/비공개 키 쌍을 생성하는 명령어를 실행할 때 반환됩니다. 자세한 내용은 Edge Micro Gateway 설정 및 구성을 참조하세요.
  • jwt_public_key: (기본값: 없음) Apigee Edge에 배포된 Edge Micro Gateway 프록시를 가리키는 URL입니다. 이 프록시는 클라이언트에 서명된 액세스 토큰을 발급하기 위한 인증 엔드포인트 역할을 합니다. 이 URL은 edgemicro connect 명령어를 실행하여 프록시를 배포할 때 반환됩니다. 자세한 내용은 Edge Micro Gateway 설정 및 구성을 참조하세요.

Edgemicro 속성

이 설정은 Edge Micro Gateway 프로세스를 구성합니다.

  • port: (기본값: 8000) Edge Micro Gateway 프로세스가 리슨하는 포트 번호입니다.
  • max_connections: (기본값: -1) Edge Micro Gateway가 수신할 수 있는 최대 동시 수신 연결 수를 지정합니다. 이 수를 초과하면 다음 상태가 반환됩니다.

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (기본값: -1) 연결을 종료하기 전에 Edge Micro Gateway가 수신할 수 있는 최대 동시 요청 수입니다. 이 설정은 서비스 거부 공격을 방지하기 위한 것입니다. 일반적으로 max_connections보다 큰 수로 설정합니다.
  • 로깅:
    • level: (기본값: error)
      • 정보 - Edge Micro Gateway 인스턴스를 통해 전달되는 모든 요청 및 응답을 로깅합니다.
      • warn - 경고 메시지만 기록합니다.
      • error - 오류 메시지만 기록합니다.
    • dir: (기본값: /var/tmp) 로그 파일이 저장된 디렉터리입니다.
    • stats_log_interval: (기본값: 60) 통계 레코드가 API 로그 파일에 기록되는 간격(초)입니다.
    • rotate_interval: (기본값: 24) 로그 파일이 순환되는 간격(시간)입니다.
  • 플러그인: 플러그인은 Edge Microgateway에 기능을 추가합니다. 플러그인 개발에 관한 자세한 내용은 커스텀 플러그인 개발을 참고하세요.
  • dir: ./gateway 디렉터리에서 ./plugins 디렉터리까지의 상대 경로 또는 절대 경로입니다.
  • 시퀀스: Edge Micro Gateway 인스턴스에 추가할 플러그인 모듈 목록입니다. 모듈은 여기에 지정된 순서대로 실행됩니다.
  • debug: Edge Micro Gateway 프로세스에 원격 디버깅을 추가합니다.
    • port: 리슨할 포트 번호입니다. 예를 들어 IDE 디버거가 이 포트에서 리슨하도록 설정합니다.
    • args: 디버그 프로세스의 인수입니다. 예를 들면 다음과 같습니다. args --nolazy
  • config_change_poll_interval: (기본값: 600초) Edge Micro Gateway는 새 구성을 주기적으로 로드하고 변경사항이 있는 경우 새로고침을 실행합니다. 폴링은 Edge에서 적용된 모든 변경사항 (제품, 마이크로 게이트웨이 인식 프록시 등)과 로컬 구성 파일의 변경사항을 가져옵니다.
  • disable_config_poll_interval: (기본값: false) 자동 변경 폴링을 사용 중지하려면 true로 설정합니다.
  • request_timeout: 대상 요청의 제한 시간을 설정합니다. 제한 시간은 초 단위로 설정됩니다. 제한 시간이 발생하면 Edge Micro Gateway는 504 상태 코드로 응답합니다. (v2.4.x 추가됨)

헤더 속성

이 설정은 특정 HTTP 헤더가 처리되는 방식을 구성합니다.

  • x-forwarded-for: (기본값: true) x-forwarded-for 헤더가 타겟에 전달되지 않도록 false로 설정합니다. 요청에 x-forwarded-for 헤더가 있으면 해당 값이 Edge Analytics의 client-ip 값으로 설정됩니다.
  • x-forwarded-host: (기본값: true) x-forwarded-host 헤더가 대상에 전달되지 않도록 false로 설정합니다.
  • x-request-id: (기본값: true) x-request-id 헤더가 대상에 전달되지 않도록 하려면 false로 설정합니다.
  • x-response-time: (기본값: true) x-응답-시간 헤더가 대상에 전달되지 않도록 하려면 false로 설정합니다.
  • via: (기본값: true) 헤더를 통해 타겟에 전달되지 않도록 하려면 false로 설정합니다.

OAuth 속성

이 설정은 Edge Micro Gateway에서 클라이언트 인증이 적용되는 방식을 구성합니다.

  • allowNoAuthorization: (기본값: false) true로 설정하면, API 호출이 승인 헤더 없이 Edge Micro Gateway를 통과할 수 있습니다. 승인 헤더가 필요하도록 false로 설정합니다 (기본값).
  • allowInvalidAuthorization: (기본값: false) true로 설정하면 승인 헤더에 전달된 토큰이 잘못되었거나 만료된 경우 API 호출을 전달할 수 있습니다. 유효한 토큰을 요구하려면 false로 설정합니다 (기본값).
  • authorization-header: (기본값: 승인: Bearer) Edge Microgateway에 액세스 토큰을 전송하는 데 사용되는 헤더입니다. 대상이 다른 목적으로 승인 헤더를 사용해야 하는 경우 기본값을 변경할 수 있습니다.
  • api-key-header: (기본값: x-api-key) API 키를 Edge Micro Gateway에 전달하는 데 사용되는 헤더 또는 쿼리 매개변수의 이름입니다. API 키 사용도 참고하세요.
  • keepAuthHeader: (기본값: false) true로 설정하면 요청에서 전송된 승인 헤더가 대상에 전달되고 보존됩니다.
  • allowOAuthOnly -- true로 설정하면 모든 API는 Bearer 액세스 토큰이 있는 승인 헤더를 포함해야 합니다. 이전 버전과의 호환성을 유지하면서 OAuth 보안 모델만 허용할 수 있습니다. (4.2.x 추가됨)
  • allowAPIKeyOnly -- true로 설정하면 모든 API는 API 키와 함께 x-api-key 헤더(또는 커스텀 위치)를 전달해야 합니다.이전 버전과의 호환성을 유지하면서 API 키 보안 모델만 허용할 수 있습니다. (4.2.x 추가됨)

플러그인별 속성

각 플러그인의 구성 가능한 속성에 대한 자세한 내용은 플러그인 사용을 참조하세요.

프록시 필터링

Edge Micro Gateway 인스턴스에서 처리할 마이크로 게이트웨이 인식 프록시를 필터링할 수 있습니다. Edge Micro Gateway가 시작되면 연결된 조직의 모든 micro Gateway 인식 프록시를 다운로드합니다. 다음 구성을 사용하여 마이크로 게이트웨이가 처리할 프록시를 제한합니다. 예를 들어 이 구성은 마이크로 게이트웨이가 처리할 프록시를 edgemicro_proxy-1, edgemicro_proxy-2, edgemicro_proxy-3의 3개로 제한합니다.

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

분석 데이터 마스킹

다음 구성은 요청 경로 정보가 Edge 애널리틱스에 표시되지 않도록 합니다. 다음을 마이크로 게이트웨이 구성에 추가하여 요청 URI 또는 요청 경로를 마스킹합니다. URI는 요청의 호스트 이름과 경로 부분으로 구성됩니다.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

회사 방화벽 뒤에 Edge Micro Gateway 설정

지원되는 v4.2.x

Edge Micro Gateway가 방화벽 뒤에 설치되어 있으면 게이트웨이가 Apigee Edge와 통신하지 못할 수 있습니다. 이 경우 다음과 같은 두 가지 옵션을 고려할 수 있습니다.

옵션 1:

첫 번째 옵션은 마이크로 게이트웨이 구성 파일에서 Edgemicro:proxy_tunnel 옵션을 true로 설정하는 것입니다.

edge_config:

    proxy: http://10.224.16.85:3128
    proxy_tunnel: true

proxy_tunneltrue이면 Edge Microgateway는 HTTP CONNECT 메서드를 사용하여 단일 TCP 연결을 통해 HTTP 요청을 터널링합니다. 프록시 구성을 위한 환경 변수가 TLS를 사용 설정한 경우에도 마찬가지입니다.

옵션 2:

두 번째 옵션은 마이크로 게이트웨이 구성 파일에서 프록시를 지정하고 Proxy_tunnel을 false로 설정하는 것입니다. 예를 들면 다음과 같습니다.

edge_config:
     proxy: http://10.224.16.85:3128
     proxy_tunnel: false

이 경우 사용하려는 각 HTTP 프록시의 호스트 또는 Edge Micro Gateway 프록시를 처리하지 않아야 하는 호스트를 제어하도록 변수(HTTP_PROXY, HTTPS_PROXY, NO_PROXY)를 설정할 수 있습니다.

NO_PROXY를 Edge Micro Gateway가 프록시하지 않아야 하는 쉼표로 구분된 도메인 목록으로 설정할 수 있습니다. 예를 들면 다음과 같습니다.

export NO_PROXY='localhost,localhost:8080'

HTTP_PROXYHTTPS_PROXY를 HTTP 프록시 엔드포인트로 설정하면 Edge Microgateway에서 메시지를 보낼 수 있습니다. 예를 들면 다음과 같습니다.

export HTTP_PROXY='http://localhost:3786'

export HTTPS_PROXY='https://localhost:3786'

이러한 변수에 대한 자세한 내용은 다음을 참조하세요.

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


참고 항목

Apigee 커뮤니티에서 회사 방화벽으로 보호되는 Edge Micro Gateway를 설정하는 방법

Micro Gateway 인식 프록시에서 와일드 카드 사용

edgemicro_* (Microgateway 인식) 프록시의 기본 경로에 '*' 와일드 카드를 하나 이상 사용할 수 있습니다. 예를 들어 /team/*/members의 기본 경로를 사용하면 새로운 팀을 지원하기 위해 새로운 API 프록시를 만들 필요 없이 클라이언트가 https://[host]/team/blue/membershttps://[host]/team/green/members를 호출할 수 있습니다. /**/는 지원되지 않습니다.

중요: Apigee는 와일드 카드 '*'를 기본 경로의 첫 번째 요소로 사용하는 것을 지원하지 않습니다. 예를 들어 /*/ 검색은 지원되지 않습니다.


디버깅 및 문제 해결

디버거에 연결

node-inspector와 같은 디버거를 사용하여 Edge Micro Gateway를 실행할 수 있습니다. 이는 커스텀 플러그인의 문제를 해결하고 디버깅하는 데 유용합니다.

  1. 디버그 모드에서 Edge Micro Gateway를 다시 시작합니다. 이렇게 하려면 start 명령어의 시작 부분에 DEBUG=*를 추가합니다. 예를 들면 다음과 같습니다.

    DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed

    참고: Windows에서는 SET DEBUG=*를 사용합니다.

  2. 디버거를 시작하고 디버깅 프로세스를 위해 포트 번호를 수신 대기하도록 설정합니다.
  3. 이제 Edge Micro Gateway 코드를 단계별로 실행하고 중단점, 감시 표현식 등을 설정할 수 있습니다.

디버그 모드와 관련된 표준 Node.js 플래그를 지정할 수 있습니다. 예를 들어 --nolazy는 비동기 코드 디버깅에 도움이 됩니다.

로그 파일 확인

문제가 발생하면 로그 파일에서 실행 세부정보와 오류 정보를 검토하세요. 자세한 내용은 로그 파일 관리하기를 참고하세요.

API 키 보안 사용

API 키는 Edge Micro Gateway에 요청하는 클라이언트를 인증하는 간단한 메커니즘을 제공합니다. Edge Micro Gateway 인증 프록시가 포함된 Apigee Edge 제품에서 고객 키 (클라이언트 ID라고도 함) 값을 복사하여 API 키를 가져올 수 있습니다.

키 캐싱

API 키는 캐시된 Bearer 토큰과 교환됩니다. Edge Micro Gateway로 수신되는 요청의 Cache-Control: no-cache 헤더를 설정하여 캐싱을 사용 중지할 수 있습니다.

OAuth2 토큰 보안 사용

프록시 요청에 OAuth 토큰을 사용하는 방법에 대한 자세한 내용은 Secure Edge Microgateway를 참조하세요.

API 키 사용

프록시 요청으로 API 키를 사용하는 방법에 대한 자세한 내용은 Secure Edge Micro Gateway를 참조하세요.

API 키 이름 구성

기본적으로 x-api-key은 API 키 헤더 또는 쿼리 매개변수에 사용되는 이름입니다. 구성 변경에 설명된 대로 구성 파일에서 이 기본값을 변경할 수 있습니다. 예를 들어 이름을 apiKey로 변경하는 방법은 다음과 같습니다.

oauth:
 allowNoAuthorization: false
 allowInvalidAuthorization: false
 api-key-header: apiKey