Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요. info
Edge Microgateway v. 2.4.x
개요
이 주제에서는 모니터링, 로깅, 디버깅을 비롯하여 Edge Microgateway를 관리하고 구성하는 방법을 설명합니다.
구성 변경
알아두어야 할 구성 파일은 다음과 같습니다.
- 기본 시스템 구성 파일
- 새로 초기화된 Edge Microgateway 인스턴스의 기본 구성 파일
- 실행 인스턴스의 동적 구성 파일
이 섹션에서는 이러한 파일과 파일을 변경할 때 알아야 할 사항을 설명합니다. 구성 파일 설정에 관한 자세한 내용은 Edge Microgateway 구성 참조를 참고하세요.
기본 시스템 구성 파일
Edge Microgateway를 설치하면 기본 시스템 구성 파일이 다음 위치에 배치됩니다.
[prefix]/lib/node_modules/edgemicro/config/default.yaml
여기서 [prefix]은 npm 접두사 디렉터리입니다.
Edge Microgateway가 설치된 위치를 참고하세요.
시스템 구성 파일을 변경하는 경우 Edge Microgateway를 다시 초기화하고 다시 구성하고 다시 시작해야 합니다.
edgemicro init에 전화하기edgemicro configure [params]에 전화하기edgemicro start [params]에 전화하기
새로 초기화된 Edge Microgateway 인스턴스의 기본 구성 파일
edgemicro init를 실행하면 시스템 구성 파일(위에 설명됨)인 default.yaml이 다음 디렉터리에 배치됩니다.
~/.edgemicro
~/.edgemicro에서 구성 파일을 변경하는 경우 Edge Microgateway를 재구성하고 다시 시작해야 합니다.
edgemicro stopedgemicro configure[params]edgemicro start[params]
실행 인스턴스의 동적 구성 파일
edgemicro configure [params]를 실행하면 ~/.edgemicro에 동적 구성 파일이 생성됩니다. 파일 이름은 [org]-[env]-config.yaml 패턴에 따라 지정됩니다. 여기서 org 및 env은 Apigee Edge 조직 및 환경 이름입니다. 이 파일을 사용하여 구성을 변경한 후 다운타임 없이 다시 로드할 수 있습니다. 예를 들어 플러그인을 추가하고 구성하는 경우 아래 설명대로 다운타임 없이 구성을 다시 로드할 수 있습니다.
Edge Microgateway가 실행 중인 경우 (무중단 옵션):
- Edge Microgateway 구성을 새로고침합니다.
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.key는 이전에 구성 명령어에 의해 반환된 키입니다.secret는 이전에 구성 명령어에 의해 반환된 키입니다.
예
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
Edge Microgateway가 중지된 경우:
- Edge Microgateway를 다시 시작합니다.
edgemicro start -o [org] -e [env] -k [key] -s [secret]
각 항목의 의미는 다음과 같습니다.
org은 Edge 조직 이름입니다 (조직 관리자여야 함).env은 조직의 환경 (예: test 또는 prod)입니다.key는 이전에 구성 명령어에 의해 반환된 키입니다.secret는 이전에 구성 명령어에 의해 반환된 키입니다.
예
edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
다음은 구성 파일의 예시입니다. 구성 파일 설정에 관한 자세한 내용은 Edge Microgateway 구성 참조를 참고하세요.
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 Microgateway를 시작하는 데 필요한 키와 비밀번호가 필요한 명령줄 인터페이스 명령어는 다음 환경 변수에 저장할 수 있습니다.
EDGEMICRO_ORGEDGEMICRO_ENVEDGEMICRO_KEYEDGEMICRO_SECRET
이러한 변수를 설정하는 것은 선택사항입니다. 이러한 값을 설정하면 명령줄 인터페이스 (CLI)를 사용하여 Edge Microgateway를 구성하고 시작할 때 값을 지정하지 않아도 됩니다.
Edge Microgateway 서버에서 SSL 구성
SSL을 사용하도록 Microgateway 서버를 구성할 수 있습니다. 예를 들어 SSL이 구성된 경우 다음과 같이 'https' 프로토콜을 사용하여 Edge Microgateway를 통해 API를 호출할 수 있습니다.
https://localhost:8000/myapi
Microgateway 서버에서 SSL을 구성하려면 다음 단계를 따르세요.
- openssl 유틸리티 또는 원하는 방법을 사용하여 SSL 인증서와 키를 생성하거나 획득합니다.
- Edge Microgateway 구성 파일에
edgemicro:ssl속성을 추가합니다. 전체 옵션 목록은 아래 표를 참고하세요. Edge Microgateway 구성을 수정하는 방법에 관한 자세한 내용은 구성 변경하기를 참고하세요. 예:
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 - Edge Microgateway를 다시 시작합니다. 수정한 구성 파일(기본 파일 또는 런타임 구성 파일)에 따라 구성 변경에 설명된 단계를 따릅니다.
다음은 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 메서드입니다. 예를 들어 SSL을 버전 3으로 강제하는 SSLv3_method가 있습니다. |
servername |
SNI (서버 이름 표시) TLS 확장 프로그램의 서버 이름입니다. |
requestCert |
양방향 SSL의 경우 true, 단방향 SSL의 경우 false |
클라이언트 SSL/TLS 옵션 사용
대상 엔드포인트에 연결할 때 TLS 또는 SSL 클라이언트가 되도록 Edge Microgateway를 구성할 수 있습니다. Microgateway 구성 파일에서 targets 요소를 사용하여 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: trueTLS의 예는 다음과 같습니다.
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 메서드입니다. 예를 들어 SSL을 버전 3으로 강제하는 SSLv3_method가 있습니다. |
servername |
SNI (서버 이름 표시) TLS 확장 프로그램의 서버 이름입니다. |
edgemicro-auth 프록시 맞춤설정
기본적으로 Edge Microgateway는 OAuth2 인증을 위해 Apigee Edge에 배포된 프록시를 사용합니다.
이 프록시는 edgemicro configure을 처음 실행할 때 배포됩니다. 이 프록시의 기본 구성을 변경하여 JSON 웹 토큰 (JWT)에 맞춤 클레임 지원을 추가하고, 토큰 만료를 구성하고, 새로고침 토큰을 생성할 수 있습니다. 자세한 내용은 GitHub의 edgemicro-auth 페이지를 참고하세요.
맞춤 인증 서비스 사용
기본적으로 Edge Microgateway는 OAuth2 인증을 위해 Apigee Edge에 배포된 프록시를 사용합니다.
이 프록시는 edgemicro configure을 처음 실행할 때 배포됩니다. 기본적으로 이 프록시의 URL은 Edge Microgateway 구성 파일에 다음과 같이 지정됩니다.
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
인증을 처리하는 자체 맞춤 서비스를 사용하려면 구성 파일에서 authUri 값을 서비스로 변경합니다. 예를 들어 LDAP를 사용하여 신원을 확인하는 서비스가 있을 수 있습니다.
로그 파일 관리
Edge Microgateway는 각 요청과 응답에 대한 정보를 로깅합니다. 로그 파일은 디버깅 및 문제 해결에 유용한 정보를 제공합니다.
로그 파일이 저장되는 위치
기본적으로 로그 파일은 /var/tmp에 저장됩니다.
기본 로그 파일 디렉터리를 변경하는 방법
로그 파일이 저장되는 디렉터리는 Edge Microgateway 구성 파일에 지정됩니다. 구성 변경에 관한 자세한 내용은 구성 변경을 참고하세요.
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 Microgateway 구성 파일에서 이러한 간격을 구성할 수 있습니다. 구성 변경에 관한 자세한 내용은 구성 변경을 참고하세요.
구성 가능한 속성은 다음과 같습니다.
- 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 Microgateway 인스턴스는 다음 세 가지 유형의 로그 파일을 생성합니다.
- api - Edge Microgateway를 통해 흐르는 모든 요청과 응답을 로깅합니다. 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 Microgateway를 시작할 때 DEBUG=*를 설정하세요. 예를 들면 다음과 같습니다.
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
참고: Windows에서는 SET DEBUG=*를 사용하세요.
'api' 로그 파일의 콘텐츠
'api' 로그 파일에는 Edge Microgateway를 통한 요청 및 응답 흐름에 관한 자세한 정보가 포함되어 있습니다. 'api' 로그 파일의 이름은 다음과 같습니다.
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
Edge Microgateway에 대한 각 요청에 대해 'api' 로그 파일에 다음 네 가지 이벤트가 캡처됩니다.
- 클라이언트의 수신 요청
- 타겟에 대한 발신 요청
- 타겟으로부터 수신되는 응답
- 클라이언트에 대한 아웃바운드 응답
이러한 각 별도 항목은 로그 파일을 더 간결하게 만들기 위해 약식 표기법으로 표시됩니다. 다음은 네 가지 이벤트를 각각 나타내는 네 가지 샘플 항목입니다. 로그 파일에서 다음과 같이 표시됩니다 (줄 번호는 문서에서만 참조용으로 표시되며 로그 파일에는 표시되지 않음).
(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 - 맥락에 따라 다릅니다. 로그 수준에 따라 info, warn 또는 error일 수 있습니다. 통계 기록의 통계, 경고의 경고 또는 오류의 오류일 수 있습니다.
- req - 이벤트를 식별합니다. 이 경우 클라이언트에서 요청합니다.
- m - 요청에 사용된 HTTP 동사입니다.
- u - 기본 경로 다음에 오는 URL 부분입니다.
- h - Edge Microgateway가 수신 대기하는 호스트 및 포트 번호입니다.
- r - 클라이언트 요청이 시작된 원격 호스트 및 포트입니다.
- i - 요청 ID입니다. 네 개의 이벤트 항목 모두 이 ID를 공유합니다. 각 요청에는 고유한 요청 ID가 할당됩니다. 요청 ID별로 로그 레코드를 상호 연관시키면 타겟의 지연 시간에 관한 유용한 정보를 얻을 수 있습니다.
- d - Edge Microgateway에서 요청을 수신한 이후 경과한 시간(밀리초)입니다. 위 예시에서 요청 0에 대한 타겟의 응답은 7밀리초 후에 수신되었고 (3번째 줄) 응답은 추가 4밀리초 후에 클라이언트로 전송되었습니다 (4번째 줄). 즉, 총 요청 지연 시간은 11밀리초였으며, 이 중 7밀리초는 타겟이, 4밀리초는 Edge Microgateway 자체가 차지했습니다.
2. 타겟에 대한 발신 요청의 샘플:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - Unix 날짜 스탬프
- info - 맥락에 따라 다릅니다. 로그 수준에 따라 info, warn 또는 error일 수 있습니다. 통계 기록의 통계, 경고의 경고 또는 오류의 오류일 수 있습니다.
- treq - 이벤트를 식별합니다. 이 경우 타겟 요청입니다.
- m - 타겟 요청에 사용된 HTTP 동사입니다.
- u - 기본 경로 다음에 오는 URL 부분입니다.
- h - 백엔드 타겟의 호스트 및 포트 번호입니다.
- i - 로그 항목의 ID입니다. 네 개의 이벤트 항목이 모두 이 ID를 공유합니다.
3. 타겟에서 수신되는 응답의 샘플
1436403888672 info tres s=200, d=7, i=0
1436403888651 - Unix 날짜 스탬프
- info - 맥락에 따라 다릅니다. 로그 수준에 따라 info, warn 또는 error일 수 있습니다. 통계 기록의 통계, 경고의 경고 또는 오류의 오류일 수 있습니다.
- tres - 이벤트를 식별합니다. 이 경우 타겟 응답입니다.
- s - HTTP 응답 상태입니다.
- d - 지속 시간(밀리초)입니다. 타겟에서 API 호출에 걸린 시간입니다.
- i - 로그 항목의 ID입니다. 네 개의 이벤트 항목이 모두 이 ID를 공유합니다.
4. 클라이언트에게 보내는 응답 샘플
1436403888676 info res s=200, d=11, i=0
1436403888651 - Unix 날짜 스탬프
- info - 맥락에 따라 다릅니다. 로그 수준에 따라 info, warn 또는 error일 수 있습니다. 통계 기록의 통계, 경고의 경고 또는 오류의 오류일 수 있습니다.
- res - 이벤트를 식별합니다. 이 경우 클라이언트에 응답합니다.
- s - HTTP 응답 상태입니다.
- d - 지속 시간(밀리초)입니다. 타겟 API에서 소요된 시간과 Edge Microgateway 자체에서 소요된 시간을 포함하여 API 호출에 소요된 총시간입니다.
- i - 로그 항목의 ID입니다. 네 개의 이벤트 항목이 모두 이 ID를 공유합니다.
로그 파일 일정
로그 파일은 rotate_interval 구성 속성에 지정된 간격으로 순환됩니다. 회전 간격이 만료될 때까지 항목이 동일한 로그 파일에 계속 추가됩니다. 하지만 Edge Microgateway가 다시 시작될 때마다 새 UID를 수신하고 이 UID로 새 로그 파일 집합을 만듭니다. 좋은 로그 파일 유지관리 관행도 참고하세요.
Edge Microgateway 구성 참조
구성 파일의 위치
이 섹션에 설명된 구성 속성은 Edge Microgateway 구성 파일에 있습니다. 구성 변경에 관한 자세한 내용은 구성 변경을 참고하세요.
edge_config 속성
이러한 설정은 Edge Microgateway 인스턴스와 Apigee Edge 간의 상호작용을 구성하는 데 사용됩니다.
- bootstrap: (기본값: none) Apigee Edge에서 실행되는 Edge Microgateway 전용 서비스를 가리키는 URL입니다. Edge Microgateway는 이 서비스를 사용하여 Apigee Edge와 통신합니다. 이 URL은 공개/비공개 키 쌍을 생성하는 명령어(
edgemicro genkeys)를 실행할 때 반환됩니다. 자세한 내용은 Edge Microgateway 설정 및 구성을 참고하세요. - jwt_public_key: (기본값: 없음) Apigee Edge에 배포된 Edge Microgateway 프록시를 가리키는 URL입니다. 이 프록시는 클라이언트에 서명된 액세스 토큰을 발급하기 위한 인증 엔드포인트 역할을 합니다. 이 URL은 프록시를 배포하는 명령어(edgemicro configure)를 실행할 때 반환됩니다. 자세한 내용은 Edge Microgateway 설정 및 구성을 참고하세요.
edgemicro 속성
이러한 설정은 Edge Microgateway 프로세스를 구성합니다.
- port: (기본값: 8000) Edge Microgateway 프로세스가 수신 대기하는 포트 번호입니다.
- max_connections: (기본값: -1) Edge Microgateway가 수신할 수 있는 동시 수신 연결의 최대 수를 지정합니다. 이 숫자를 초과하면 다음 상태가 반환됩니다.
res.statusCode = 429; // Too many requests
- max_connections_hard: (기본값: -1) Edge Microgateway가 연결을 종료하기 전에 수신할 수 있는 최대 동시 요청 수입니다. 이 설정은 서비스 거부 공격을 방지하기 위한 것입니다. 일반적으로 max_connections보다 큰 수로 설정합니다.
-
logging:
-
level: (기본값: error)
- info - Edge Microgateway 인스턴스를 통해 흐르는 모든 요청과 응답을 로깅합니다.
- warn - 경고 메시지만 로깅합니다.
- error - 오류 메시지만 기록합니다.
- dir: (기본값: /var/tmp) 로그 파일이 저장되는 디렉터리입니다.
- stats_log_interval: (기본값: 60) 통계 레코드가 API 로그 파일에 기록되는 간격(초)입니다.
- rotate_interval: (기본값: 24) 로그 파일이 순환되는 간격(시간)입니다.
-
level: (기본값: error)
- 플러그인: 플러그인은 Edge Microgateway에 기능을 추가합니다. 플러그인 개발에 관한 자세한 내용은 맞춤 플러그인 개발을 참고하세요.
- dir: ./gateway 디렉터리에서 ./plugins 디렉터리로의 상대 경로 또는 절대 경로입니다.
- sequence: Edge Microgateway 인스턴스에 추가할 플러그인 모듈 목록입니다. 모듈은 여기에 지정된 순서대로 실행됩니다.
-
debug: Edge Microgateway 프로세스에 원격 디버깅을 추가합니다.
- port: 리슨할 포트 번호입니다. 예를 들어 이 포트에서 리슨하도록 IDE 디버거를 설정합니다.
- args: 디버그 프로세스의 인수입니다. 예를 들면 다음과 같습니다.
args --nolazy
- config_change_poll_interval: (기본값: 600초) Edge Microgateway는 주기적으로 새 구성을 로드하고 변경사항이 있으면 다시 로드를 실행합니다. 폴링은 Edge에서 이루어진 변경사항 (제품, 마이크로게이트웨이 인식 프록시 등의 변경사항)과 로컬 구성 파일에 이루어진 변경사항을 모두 포착합니다.
- disable_config_poll_interval: (기본값: false) 자동 변경사항 폴링을 사용 중지하려면 true로 설정합니다.
- request_timeout: 타겟 요청의 제한 시간을 설정합니다. 시간 제한은 초 단위로 설정됩니다. 제한 시간이 초과되면 Edge Microgateway는 504 상태 코드로 응답합니다. (v2.4.x 추가됨)
headers 속성
이 설정은 특정 HTTP 헤더가 처리되는 방식을 구성합니다.
- x-forwarded-for: (기본값: true) x-forwarded-for 헤더가 타겟에 전달되지 않도록 하려면 false로 설정합니다. x-forwarded-for 헤더가 요청에 있으면 해당 값이 Edge 분석의 client-ip 값으로 설정됩니다.
- x-forwarded-host: (기본값: true) x-forwarded-host 헤더가 타겟에 전달되지 않도록 하려면 false로 설정합니다.
- x-request-id: (기본값: true) x-request-id 헤더가 타겟에 전달되지 않도록 하려면 false로 설정합니다.
- x-response-time: (기본값: true) x-response-time 헤더가 타겟에 전달되지 않도록 하려면 false로 설정합니다.
- via: (기본값: true) via 헤더가 타겟에 전달되지 않도록 하려면 false로 설정합니다.
oauth 속성
이러한 설정은 Edge Microgateway에서 클라이언트 인증을 적용하는 방법을 구성합니다.
- allowNoAuthorization: (기본값: false) true로 설정하면 API 호출이 승인 헤더 없이 Edge Microgateway를 통과할 수 있습니다. 승인 헤더가 필요하도록 하려면 false로 설정합니다 (기본값).
- allowInvalidAuthorization: (기본값: false) true로 설정하면 Authorization 헤더에 전달된 토큰이 유효하지 않거나 만료된 경우 API 호출이 전달될 수 있습니다. 유효한 토큰이 필요하도록 하려면 (기본값) false로 설정합니다.
- authorization-header: (기본값: Authorization: Bearer) 액세스 토큰을 Edge Microgateway로 전송하는 데 사용되는 헤더입니다. 타겟이 다른 목적으로 승인 헤더를 사용해야 하는 경우 기본값을 변경할 수 있습니다.
- api-key-header: (기본값: x-api-key) API 키를 Edge Microgateway에 전달하는 데 사용되는 헤더 또는 쿼리 매개변수의 이름입니다. API 키 사용도 참고하세요.
- keepAuthHeader: (기본값: false) true로 설정하면 요청에서 전송된 Authorization 헤더가 대상에 전달됩니다 (보존됨).
- allowOAuthOnly -- true로 설정하면 모든 API가 Bearer 액세스 토큰이 포함된 Authorization 헤더를 전달해야 합니다. 이전 버전과의 호환성을 유지하면서 OAuth 보안 모델만 허용할 수 있습니다. (4.2.x 추가됨)
- allowAPIKeyOnly -- true로 설정하면 모든 API가 API 키와 함께 x-api-key 헤더(또는 맞춤 위치)를 전달해야 합니다.이를 통해 하위 호환성을 유지하면서 API 키 보안 모델만 허용할 수 있습니다. (4.2.x 추가됨)
플러그인 관련 속성
각 플러그인의 구성 가능한 속성에 대한 자세한 내용은 플러그인 사용을 참고하세요.
프록시 필터링
Edge Microgateway 인스턴스에서 처리할 마이크로 게이트웨이 인식 프록시를 필터링할 수 있습니다.
Edge Microgateway가 시작되면 연결된 조직의 모든 microgateway 인식 프록시를 다운로드합니다. 다음 구성을 사용하여 마이크로게이트웨이에서 처리할 프록시를 제한합니다. 예를 들어 이 구성은 마이크로게이트웨이에서 처리할 프록시를 edgemicro_proxy-1, edgemicro_proxy-2, edgemicro_proxy-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 Microgateway 설정
지원되는 v4.2.x
Edge Microgateway가 방화벽 뒤에 설치된 경우 게이트웨이가 Apigee Edge와 통신하지 못할 수 있습니다. 이 경우 고려할 수 있는 두 가지 옵션이 있습니다.
옵션 1:
첫 번째 옵션은 마이크로게이트웨이 구성 파일에서 edgemicro: proxy_tunnel 옵션을 true로 설정하는 것입니다.
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: trueproxy_tunnel이 true인 경우 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 Microgateway 프록시를 처리하지 않아야 하는 호스트를 제어할 수 있습니다. HTTP_PROXY, HTTPS_PROXY, NO_PROXY
NO_PROXY를 Edge Microgateway가 프록시하지 않아야 하는 도메인의 쉼표로 구분된 목록으로 설정할 수 있습니다. 예를 들면 다음과 같습니다.
export NO_PROXY='localhost,localhost:8080'
Edge Microgateway가 메시지를 보낼 수 있는 HTTP 프록시 엔드포인트로 HTTP_PROXY 및 HTTPS_PROXY를 설정합니다. 예를 들면 다음과 같습니다.
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 Microgateway를 설정하는 방법
Microgateway 인식 프록시에서 와일드 카드 사용
edgemicro_* (마이크로게이트웨이 인식) 프록시의 기본 경로에서 하나 이상의 '*' 와일드 카드를 사용할 수 있습니다. 예를 들어 /team/*/members의 기본 경로를 사용하면 클라이언트가 새 팀을 지원하기 위해 새 API 프록시를 만들 필요 없이 https://[host]/team/blue/members 및 https://[host]/team/green/members를 호출할 수 있습니다. /**/는 지원되지 않습니다.
중요: Apigee는 와일드 카드 '*'로 시작하는 기본 경로를 지원하지 않습니다. 예를 들어 /*/ 검색은 지원되지 않습니다.
디버깅 및 문제 해결
디버거에 연결
node-inspector와 같은 디버거를 사용하여 Edge Microgateway를 실행할 수 있습니다. 이는 맞춤 플러그인을 문제 해결하고 디버깅하는 데 유용합니다.
- 디버그 모드에서 Edge Microgateway를 다시 시작합니다. 이렇게 하려면 시작 명령어의 시작 부분에
DEBUG=*를 추가하세요. 예를 들면 다음과 같습니다.
DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
참고: Windows에서는
SET DEBUG=*를 사용하세요. - 디버거를 시작하고 디버깅 프로세스의 포트 번호에서 수신 대기하도록 설정합니다.
- 이제 Edge Microgateway 코드를 단계별로 실행하고, 중단점을 설정하고, 표현식을 감시하는 등의 작업을 할 수 있습니다.
디버그 모드와 관련된 표준 Node.js 플래그를 지정할 수 있습니다. 예를 들어 --nolazy는 비동기 코드를 디버깅하는 데 도움이 됩니다.
로그 파일 확인
문제가 있는 경우 실행 세부정보와 오류 정보를 로그 파일에서 확인하세요. 자세한 내용은 로그 파일 관리를 참고하세요.
API 키 보안 사용
API 키는 Edge Microgateway에 요청하는 클라이언트를 인증하는 간단한 메커니즘을 제공합니다. Edge Microgateway 인증 프록시가 포함된 Apigee Edge 제품에서 소비자 키 (클라이언트 ID라고도 함) 값을 복사하여 API 키를 가져올 수 있습니다.
키 캐싱
API 키는 캐시된 베어러 토큰으로 교환됩니다. Edge Microgateway로 들어오는 요청에서 Cache-Control: no-cache 헤더를 설정하여 캐싱을 사용 중지할 수 있습니다.
OAuth2 토큰 보안 사용
프록시 요청과 함께 OAuth 토큰을 사용하는 방법에 대한 자세한 내용은 Edge Microgateway 보안을 참고하세요.
API 키 사용
프록시 요청과 함께 API 키를 사용하는 방법에 관한 자세한 내용은 Edge Microgateway 보안을 참고하세요.
API 키 이름 구성
기본적으로 x-api-key는 API 키 헤더 또는 쿼리 매개변수에 사용되는 이름입니다. 구성 변경에 설명된 대로 구성 파일에서 이 기본값을 변경할 수 있습니다. 예를 들어 이름을 apiKey로 변경하려면 다음을 실행합니다.
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey