7장. APIcast 환경 변수

APIcast 환경 변수를 사용하면 APIcast의 동작을 수정할 수 있습니다. 지원되는 환경 변수는 다음과 같습니다.

참고
  • 지원되지 않거나 더 이상 사용되지 않는 환경 변수가 나열되지 않음
  • 일부 환경 변수 기능이 APIcast 정책으로 이동되었을 수 있습니다.

all_proxy, ALL_PROXY

기본값: 없음 : 문자열 :http://forward-proxy:80

프로토콜별 프록시가 지정되지 않은 경우 서비스에 연결하는 데 사용할 HTTP 프록시를 정의합니다. 인증은 지원되지 않습니다.

APICAST_ACCESS_LOG_FILE

default: stdout

액세스 로그를 저장할 파일을 정의합니다.

APICAST_BACKEND_CACHE_HANDLER

: 엄격한 | 탄력적

기본값: strict

사용 중지됨: 대신 캐싱 정책을 사용합니다.

백엔드를 사용할 수 없을 때 권한 부여 캐시가 동작하는 방법을 정의합니다. 백엔드를 사용할 수 없는 경우 Strict는 캐시된 애플리케이션을 제거합니다. 복원력은 백엔드에서 권한을 거부하는 경우에만 적용됩니다.

APICAST_CACHE_MAX_TIME

기본값: 1m

값: 문자열

시스템에 캐시할 응답을 선택하면 이 변수의 값은 캐시할 최대 시간을 나타냅니다. cache-control 헤더가 설정되지 않은 경우 캐시할 시간이 정의된 헤더가 됩니다.

이 값의 형식은 proxy_cache_valid NGINX 지시문 으로 정의합니다.

이 매개 변수는 콘텐츠 캐싱 정책을 사용하고 요청을 캐시할 수 있는 API에서만 사용합니다.

APICAST_CACHE_STATUS_CODES

기본값: 200, 302

값: 문자열

업스트림의 응답 코드가 이 환경 변수에 정의된 상태 코드 중 하나와 일치하면 응답 콘텐츠가 NGINX에 캐시됩니다. 캐싱 시간은 헤더 캐시 시간 값 또는 APICAST_CACHE_MAX_TIME 환경 변수로 정의된 최대 시간 중 하나에 따라 달라집니다.

이 매개 변수는 콘텐츠 캐싱 정책을 사용하고 요청을 캐시할 수 있는 API에서만 사용합니다.

APICAST_CONFIGURATION_CACHE

: 숫자

기본값: 0

구성이 저장될 간격(초)을 지정합니다. 값은 0(API CAST_CONFIGURATION_LOADER의 부팅 값과 호환되지 않음) 60으로 설정해야 합니다. 예를 들어 APICAST_CONFIGURATION_CACHE 가 120으로 설정된 경우 게이트웨이는 2분(120초)마다 API 관리자에서 구성을 다시 로드합니다. 값 < 0은 다시 로드를 비활성화합니다.

APICAST_CONFIGURATION_LOADER

: 부팅 | 지연

기본값: 지연

는 구성을 로드하는 방법을 정의합니다. 부팅은 게이트웨이가 시작될 때 API 관리자에 구성을 요청합니다. lazy는 들어오는 각 요청에 대해 요청 시 로드합니다(각 요청 APICAST_CONFIGURATION_CACHE 에 대한 전체 새로 고침을 보장하려면 0).

APICAST_CUSTOM_CONFIG

사용 중지됨: 대신 정책을 사용합니다.

기존 APIcast 논리를 재정의하는 사용자 지정 논리를 구현하는 Lua 모듈의 이름을 정의합니다.

APICAST_ENVIRONMENT

기본값:

value: string[:]

: production:cloud-hosted

APIcast는 콜론(:)으로 구분된 환경(또는 경로) 목록을 로드해야 합니다. 이 목록은 CLI에서 -e 또는 --environment 매개변수 대신 사용할 수 있습니다(예: 컨테이너 이미지에 기본 환경 저장). CLI에 전달된 값은 이 변수를 재정의합니다.

APICAST_EXTENDED_METRICS

기본값: false

: 부울

: "true"

Prometheus 지표에 대한 추가 정보를 활성화합니다. 다음 메트릭에는 APIcast에 대한 자세한 내용을 제공하는 service_id 및 service_system_name 라벨이 있습니다.

  • total_response_time_seconds
  • upstream_response_time_seconds
  • upstream_status

APICAST_HTTPS_CERTIFICATE

default: 값 없음

HTTPS의 PEM 형식의 X.509 인증서가 있는 파일 경로입니다.

APICAST_HTTPS_CERTIFICATE_KEY

default: 값 없음

PEM 형식의 X.509 인증서 비밀 키가 있는 파일 경로입니다.

APICAST_HTTPS_PORT

default: 값 없음

APIcast가 HTTPS 연결 수신을 시작할 포트를 제어합니다. HTTP 포트와 충돌하는 경우 HTTPS에만 사용됩니다.

APICAST_HTTPS_VERIFY_DEPTH

기본값: 1

value: 양의 정수입니다.

클라이언트 인증서 체인의 최대 길이를 정의합니다. 이 매개변수의 값이 1 인 경우 클라이언트 인증서 체인에 추가 인증서를 포함할 수 있습니다. 예를 들면 루트 인증 기관입니다.

APICAST_LOAD_SERVICES_WHEN_NEEDED

값:

  • true 또는 true 의 경우 1 입니다 .
  • false,0 또는 false의 경우 비어 있음

기본값:false

이 옵션은 많은 서비스가 구성되어 있는 경우 사용할 수 있습니다. 그러나 해당 성능은 서비스 수, APIcast와 3scale 관리 포털 간의 대기 시간, 구성의 TTL(Time To Live) 등의 추가 요소에 따라 달라집니다.

기본적으로 APIcast는 관리 포털에서 구성을 다운로드할 때마다 모든 서비스를 로드합니다. 이 옵션을 활성화하면 구성에서 지연 로드를 사용합니다. APIcast는 요청의 호스트 헤더에 지정된 호스트에 대해 구성된 항목만 로드합니다.

참고

APICAST_LOG_FILE

기본값: stderr

OpenResty 오류 로그를 포함하는 파일을 정의합니다. 파일은 error_log 지시문의 bin/apicast 에서 사용됩니다. 파일 경로는 절대 경로이거나 APIcast 접두사 디렉터리와 상대적일 수 있습니다. 기본 접두사 디렉터리는 APIcast입니다. 자세한 내용은 NGINX 설명서 를 참조하십시오.

APICAST_LOG_LEVEL

: debug | info | notice | warn | error | crit | alert | emerg

기본값: warn

OpenResty 로그의 로그 수준을 지정합니다.

APICAST_MANAGEMENT_API

값:

  • Disabled: 완전히 비활성화되어 포트에서만 수신 대기합니다
  • status : 상태 점검에 대해 /status/ 끝점만 활성화됨
  • debug: 전체 API가 열려 있습니다

관리 API 는 강력하며 APIcast 구성을 제어할 수 있습니다. 디버깅에만 디버그 수준을 활성화해야 합니다.

APICAST_MODULE

기본값: apicast

사용 중지됨: 대신 정책을 사용합니다.

API 게이트웨이 논리를 구현하는 기본 Lua 모듈의 이름을 지정합니다. 사용자 지정 모듈은 기본 apicast.lua 모듈의 기능을 재정의할 수 있습니다. 모듈 사용 방법에 대한 예를 참조하십시오.

APICAST_OIDC_LOG_LEVEL

: debug | info | notice | warn | error | crit | alert | emerg

기본값: err

를 사용하여 OpenID Connect 통합과 관련된 로그의 로그 수준을 설정할 수 있습니다.

APICAST_PATH_ROUTING

:

  • true 또는 true 의 경우 1 입니다.
  • false,0 또는 false의 경우 비어 있음

이 매개 변수를 true 로 설정하면 게이트웨이는 기본 호스트 기반 라우팅 외에도 경로 기반 라우팅을 사용합니다. API 요청은 요청의 Host 헤더 값이 Public Base URL 과 일치하는 서비스 목록에서 일치하는 매핑 규칙이 있는 첫 번째 서비스로 라우팅됩니다.

APICAST_PATH_ROUTING_ONLY

:

  • true 또는 true 의 경우 1 입니다.
  • false,0 또는 false의 경우 비어 있음

이 매개변수를 true 로 설정하면 게이트웨이는 경로 기반 라우팅을 사용하며 기본 호스트 기반 라우팅으로 대체되지 않습니다. API 요청은 요청의 Host 헤더 값이 Public Base URL 과 일치하는 서비스 목록에서 일치하는 매핑 규칙이 있는 첫 번째 서비스로 라우팅됩니다.

이 매개변수는 APICAST_PATH_ROUTING 보다 우선합니다. APICAST_PATH_ROUTING_ONLY 가 활성화된 경우 APIcast는 APICAST_PATH_ROUTING 값과 관계없이 경로 기반 라우팅만 수행합니다.

APICAST_POLICY_LOAD_PATH

기본값: APICAST_DIR/policies

value: string[:]

:~/apicast/policies:$PWD/policies

APIcast에서 정책을 찾아야 하는 콜론(:)으로 구분된 경로 목록입니다. 개발 디렉토리에서 우선 정책을 로드하거나 예제를 로드하는 데 사용할 수 있습니다.

APICAST_PROXY_HTTPS_CERTIFICATE

기본값:

: 문자열

: /home/apicast/my_certificate.crt

업스트림과 연결할 때 APIcast가 사용할 클라이언트 SSL 인증서의 경로입니다. 이 인증서는 구성의 모든 서비스에 사용됩니다.

APICAST_PROXY_HTTPS_CERTIFICATE_KEY

기본값:

: 문자열

: /home/apicast/my_certificate.key

클라이언트 SSL 인증서의 키 경로입니다.

APICAST_PROXY_HTTPS_PASSWORD_FILE

기본값:

: 문자열

: /home/apicast/passwords.txt

APICAST_PROXY_HTTPS_CERTIFICATE_KEY 로 지정된 SSL 인증서 키의 암호가 있는 파일의 경로입니다.

APICAST_PROXY_HTTPS_SESSION_REUSE

기본값: 켜짐

:

  • 에서: SSL 세션을 재사용합니다.
  • off: SSL 세션을 재사용하지 않습니다.

APICAST_REPORTING_THREADS

기본값: 0

: 정수 >= 0

실험적: 극도의 부하에서 예측할 수 없는 성능이 있고 보고서가 손실될 수 있습니다.

0보다 큰 값은 백엔드에 대한 대역 외 보고를 활성화합니다. 이는 성능 향상을 위한 새로운 실험 기능입니다. 클라이언트는 백엔드 대기 시간이 표시되지 않으며 모든 사항이 비동기적으로 처리됩니다. 이 값은 대기 시간을 추가하여 클라이언트가 제한되기 전에 동시에 실행할 수 있는 비동기 보고서 수를 결정합니다.

APICAST_RESPONSE_CODES

:

  • true 또는 true 의 경우 1 입니다.
  • false,0 또는 false의 경우 비어 있음

기본값: <empty> (false)

true 로 설정하면 APIcast가 3scale에서 API 백엔드에서 반환한 응답의 응답 코드를 기록합니다. 3scale 고객 포털에서 응답 코드 기능에 대한 자세한 내용을 확인하십시오.

APICAST_SERVICE_CACHE_SIZE

: 정수 >= 0

기본값: 1000

APIcast가 내부 캐시에 저장할 수 있는 서비스 수를 지정합니다. Lua의 lru 캐시가 모든 항목을 초기화하므로 높은 값은 성능에 영향을 미칩니다.

APICAST_SERVICE_${ID}_CONFIGURATION_VERSION

${ID} 를 실제 서비스 ID로 바꿉니다. 값은 관리 포털의 구성 내역에서 볼 수 있는 구성 버전이어야 합니다. 특정 버전으로 설정하면 자동으로 업데이트되지 않으며 항상 해당 버전을 사용합니다.

APICAST_SERVICES_LIST

value: 쉼표로 구분된 서비스 ID 목록

APICAST_SERVICES_LIST 환경 변수는 3scale API Manager에서 구성하는 서비스를 필터링하는 데 사용됩니다. 이는 게이트웨이의 특정 서비스에 대한 구성만 적용하여 목록에 지정되지 않은 서비스 식별자를 삭제합니다. 제품 > [your_product_name] > Overview 의 관리 포털에서 제품의 서비스 식별자를 찾은 다음 Configuration, Methods 및 Settings 및 API 호출 ID 를 참조하십시오.

APICAST_SERVICES_FILTER_BY_URL

: PCRE (Perl Compatible Regular Expression) (예: .*.example.com )입니다.

3scale API Manager에서 구성된 서비스를 필터링합니다.

이 필터는 공개 기본 URL 과 일치합니다. 필터와 일치하지 않는 서비스는 삭제됩니다. 정규 표현식을 컴파일할 수 없는 경우 서비스가 로드되지 않습니다.

참고

서비스가 일치하지 않지만 APICAST_SERVICES_LIST포함된 경우 서비스가 취소되지 않습니다.

예 7.1. 예

Regexp 필터 http://.*.foo.dev 는 다음 백엔드 끝점에 적용됩니다.

이 경우 포함된 APIcast에서 13 이 구성되어 24 가 삭제됩니다.

APICAST_UPSTREAM_RETRY_CASES

: error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | non_idempotent | off

참고

이는 재시도 정책이 구성된 경우에만 사용되며 업스트림 API에 대한 요청을 다시 시도해야 하는 시기를 지정합니다. Nginx의 PROXY_NEXT_UPSTREAM 모듈과 동일한 값을 허용합니다.

APICAST_WORKERS

기본값: auto

:숫자 | auto

이는 nginx worker_processes 지시문에서 사용되는 값입니다. 기본적으로 APIcast는 1 가 사용되는 개발 환경을 제외하고 auto 를 사용합니다.

BACKEND_ENDPOINT_OVERRIDE

구성의 백엔드 엔드포인트를 재정의하는 URI입니다. OpenShift 외부에서 배포할 때 유용함. :https://backend.example.com.

HTTP_KEEPALIVE_TIMEOUT

기본값: 75 : 양의 정수 : 1

이 매개 변수는 서버 측에서 keep-alive 클라이언트 연결이 열린 동안 시간 초과를 설정합니다. 0 값은 keep-alive 클라이언트 연결을 비활성화합니다.

기본적으로 게이트웨이는 HTTP_KEEPALIVE_TIMEOUT 비활성화를 유지합니다. 이 구성을 사용하면 기본값이 75초 인 NGINX의 keepalive 타임아웃을 사용할 수 있습니다.

http_proxy, HTTP_PROXY

기본값: 없음 : 문자열 :http://forward-proxy:80

HTTP 서비스 연결에 사용할 HTTP 프록시를 정의합니다. 인증은 지원되지 않습니다.

https_proxy, HTTPS_PROXY

기본값: 없음 : 문자열 :https://forward-proxy:443

HTTPS 서비스 연결에 사용할 HTTP 프록시를 정의합니다. 인증은 지원되지 않습니다.

no_proxy, NO_PROXY

default: no value : string\[,<string>\]; * Example:foo,bar.com,.extra.dot.com

요청이 프록시되지 않아야 하는 쉼표로 구분된 호스트 이름 및 도메인 이름 목록을 정의합니다. 모든 호스트와 일치하는 단일 * 문자로 설정하면 프록시가 효과적으로 비활성화됩니다.

OPENSSL_VERIFY

:

  • 0,false: 피어 확인 비활성화
  • 1,true: 피어 확인 활성화

OpenSSL Peer Verification 제어. OpenSSL은 시스템 인증서 저장소를 사용할 수 없으므로 기본적으로 꺼져 있습니다. 여기에는 사용자 정의 인증서 번들이 필요하며 이를 신뢰할 수 있는 인증서에 추가해야 합니다.

https://github.com/openresty/lua-nginx-module#lua_ssl_trusted_certificate 을(를) 사용하고 export-builtin-trusted-certs 에서 생성된 인증서 번들을 가리키는 것이 좋습니다.

OPENTRACING_CONFIG

이 환경 변수는 OPENTRACING_TRACER 가 설정되지 않은 경우 opentracing 추적기에 대한 구성 파일을 결정하는 데 사용됩니다.

각 추적기에는 기본 구성 파일이 있습니다. * jaeger: conf.d/opentracing/jaeger.example.json

이 변수를 사용하여 파일 경로를 설정하여 기본적으로 제공된 것과 다른 구성을 마운트하도록 선택할 수 있습니다.

Example: /tmp/jaeger/jaeger.json

OPENTRACING_HEADER_FORWARD

Default: uber-trace-id

이 환경 변수는 오픈tracing 정보를 전달하는 데 사용되는 HTTP 헤더를 제어합니다. 이 HTTP 헤더는 업스트림 서버로 전달됩니다.

OPENTRACING_TRACER

:jaeger

이 환경 변수는 로드할 추적 라이브러리를 현재 사용할 수 있는 opentracing 추적기 한 개뿐인 jaeger 를 제어합니다.

비어 있는 경우 Opentracing 지원이 비활성화됩니다.

확인자

OpenResty에서 사용할 사용자 지정 DNS 확인자를 지정할 수 있습니다. RESOLVER 매개변수가 비어 있으면 DNS 확인자가 자동으로 검색됩니다.

THREESCALE_CONFIG_FILE

게이트웨이 구성을 사용하는 JSON 파일의 경로입니다. 게이트웨이가 성공적으로 실행되도록 THREESCALE_PORTAL_ENDPOINT 또는 THREESCALE_CONFIG_FILE 을 제공해야 합니다. 이 두 환경 변수에서 THREESCALE_CONFIG_FILE 이 우선합니다.

Proxy Config ShowProxy Config Show Latest 엔드포인트는 서비스에 의해 범위가 지정되며 Proxy Configs List 서비스도 제공됩니다. 서비스 ID를 알고 있어야 합니다. 다음 옵션을 사용합니다.

  • 프록시 구성 목록 공급자 끝점을 사용합니다. <schema>://<admin-portal-domain>/admin/api/proxy_configs/<env>.json

    • 끝점은 각 서비스의 최신뿐만 아니라 공급자의 저장된 모든 프록시 구성을 반환합니다. JSON에서 반환된 proxy_configs 배열을 반복하고 proxy _config. version이 동일한 proxy_config. content.id가 동일한 proxy_config.id 중 가장 높은 proxy_config.content 를 선택합니다.
  • 서비스 목록 끝점 사용: /admin/api/services.json

    • 엔드포인트는 공급자의 모든 서비스를 나열합니다. 서비스 배열을 반복하고 각 서비스에서 서비스에서 범위가 지정된 Proxy Config Show Latest 끝점을 사용합니다.

컨테이너 이미지를 사용하여 게이트웨이를 배포하는 경우:

  1. 이미지에 파일을 읽기 전용 볼륨으로 구성합니다.
  2. 볼륨을 마운트한 위치를 나타내는 경로를 지정합니다.

예제 폴더에서 샘플 구성 파일을 찾을 수 있습니다.

THREESCALE_DEPLOYMENT_ENV

: 스테이징 | 프로덕션

기본값: production

이 환경 변수의 값은 구성을 다운로드할 환경을 정의합니다. 이는 새 APIcast를 사용할 때 3scale 스테이징 또는 프로덕션입니다.

이 값은 3 scale 서비스 관리 API에 대한 인증/보고서 요청의 X-3scale-User-Agent 헤더에도 사용됩니다. 3scale은 통계에만 사용됩니다.

THREESCALE_PORTAL_ENDPOINT

다음 형식으로 암호 및 포털 엔드 포인트를 포함하는 URI:

<schema>://<password>@<admin-portal-domain>.

다음과 같습니다.

  • <password> 는 3scale 계정 관리 API에 대한 공급자 키 또는 액세스 토큰 일 수 있습니다.
  • <admin-portal-domain> 은 3scale 관리 포털에 로그인할 URL 주소입니다.

:https://access-token@account-admin.3scale.net.

THREESCALE_PORTAL_ENDPOINT 환경 변수가 제공되면 게이트웨이는 초기화 시 3scale에서 구성을 다운로드합니다. 구성에는 API의 통합 페이지에 제공된 모든 설정이 포함됩니다.

이 환경 변수를 사용하여 마스터 관리 포털로 단일 게이트웨이를 생성할 수도 있습니다.

게이트웨이 성공적으로 실행하기 위해 THREESCALE_PORTAL_ENDPOINT 또는 THREESCALE_CONFIG_FILE (권한 우선 순위)을 제공해야 합니다.