가상 호스트 속성 참조

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

가상 호스트 표현

가상 호스트를 정의하는 데 사용하는 XML 객체는 에지 버전(클라우드 또는 프라이빗 클라우드)에 따라 다릅니다.

프라이빗 클라우드 고객인 경우 Edge 버전에 올바른 XML을 사용해야 합니다.

클라우드 및 프라이빗 클라우드 4.17.01 이상

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <BaseUrl>http://myCo.com</BaseUrl>
    <OCSPStapling>offOn</OCSPStapling>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    </Interfaces>
    <RetryOptions>
        <RetryOption>option</RetryOption>
    </RetryOptions>
    <ListenOptions>
        <ListenOption>option</ListenOption>
    </ListenOptions>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <!-- UseBuiltInFreeTrialCert is for Edge Cloud only -->
    <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert>
    <PropagateTLSInformation>
        <!-- PropagateTLSInformation is Alpha in the Cloud only -->
        <ConnectionProperties>trueFalse</ConnectionProperties>
        <ClientProperties>trueFalse</ClientProperties>
    </PropagateTLSInformation>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <!-- ssl_protocols is Private Cloud only -->
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Private Cloud 4.16.01~4.16.09

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Private Cloud 4.15.07 이하

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>keystore</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>truststore</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
        <Ciphers>
             <Cipher>cipher</Cipher>
             <Cipher>cipher</Cipher>
         </Ciphers>
         <Protocols>
             <Protocol>protocol</Protocol>
             <Protocol>protocol</Protocol>
         </Protocols>
    </SSLInfo>
</VirtualHost>

가상 호스트 구성 속성

다음 표에는 가상 호스트를 구성하는 데 사용하는 속성이 나와 있습니다.

속성 설명 기본 계정 필수
VirtualHost

가상 호스트의 이름을 지정합니다. API 프록시를 구성할 때 이 이름을 사용하여 가상 호스트를 참조합니다.

name 속성에 사용할 수 있는 문자는 A-Z0-9._\-$%로 제한됩니다.

없음 지원됨
포트

가상 호스트에서 사용하는 포트 번호를 지정합니다. 에지 라우터에 포트가 열려 있는지 확인합니다.

hostalias 요소에서 포트를 지정하는 경우 <Port> 로 지정된 포트 번호가 일치해야 합니다.

클라우드의 경우: 가상 호스트를 만들 때 포트 443을 지정해야 합니다. 생략할 경우 기본적으로 포트는 443으로 설정됩니다. 443이 아닌 포트를 사용하는 기존 가상 호스트가 있으면 포트를 변경할 수 없습니다.

Private Cloud 출시 버전 4.16.01~4.17.05: 가상 호스트를 만들 때 가상 호스트에서 사용하는 라우터 포트를 지정합니다. 예: 포트 9001 기본적으로 라우터는 권한 있는 포트(일반적으로 포트 1024 이하)에 액세스할 수 없는 사용자 'apigee'로 실행됩니다. 라우터를 보호된 포트에 바인딩하는 가상 호스트를 만들려면 라우터가 이러한 포트에 액세스할 수 있는 사용자로 실행되도록 구성해야 합니다. 자세한 내용은 가상 호스트 설정을 참조하세요.

4.16.01 이전의 Private Cloud 출시 버전: 라우터가 특정 포트에서 지정된 인증서를 사용하여 가상 호스트당 하나의 HTTPS 연결만 리슨할 수 있습니다. 따라서 지정된 포트의 라우터에서 TLS 종료가 발생할 경우 여러 가상 호스트가 동일한 포트 번호를 사용할 수 없습니다.

없음 지원됨
BaseUrl 가상 호스트에 배포된 API 프록시의 Edge UI에 표시되는 URL을 재정의합니다. 에지 라우터 앞에 외부 부하 분산기가 있는 경우에 유용합니다. 자세한 내용은 Private Cloud의 API에 대한 TLS 액세스 구성을 참조하세요.

BaseUrl의 값에는 프로토콜 (예: 'http://' 또는 'https://').

없음 No
OCSPStapling

OCSP (온라인 인증서 상태 프로토콜) 클라이언트는 TLS 인증서가 유효한지 확인하기 위해 상태 요청을 OCSP 응답자에게 보냅니다. 응답은 TLS 인증서가 유효하고 취소되지 않았는지 여부를 나타냅니다.

OCSP 스테이플링을 사용 설정하면 단방향 TLS의 TLS 서버 역할을 하는 Edge에서 OCSP 응답자를 직접 쿼리한 후 응답을 캐시할 수 있습니다. 그러면 Edge는 TLS 핸드셰이크의 일부로 이 응답을 TLS 클라이언트에 반환하거나 스테이플합니다. 자세한 내용은 서버에서 OCSP 스테이플링 사용 설정을 참고하세요.

OCSP 스테이플링을 사용 설정하려면 TLS를 사용 설정해야 합니다. 사용 설정하려면 on로 설정하세요. 기본값은 off입니다.

사용 안함 No
HostAliases
HostAlias

라우터에 있는 가상 호스트의 공개적으로 표시되는 DNS 이름이며 포트 번호를 선택적으로 포함합니다. 가상 호스트의 호스트 별칭 이름과 포트 번호 조합은 Edge 설치의 모든 가상 호스트에서 고유해야 합니다. 즉, 호스트 별칭이 다르면 여러 가상 호스트가 동일한 포트 번호를 사용할 수 있습니다.

호스트 별칭과 일치하는 DNS 항목과 CNAME 레코드를 만들어야 하며 호스트 별칭은 클라이언트가 Host 헤더에 전달하는 문자열과 일치해야 합니다.

HostAlias의 포트 번호는 선택사항입니다. 포트를 호스트 별칭의 일부로 지정하는 경우 <Port> 요소를 사용해 동일한 포트도 지정해야 합니다. 또는 두 개의 HostAlias 요소를 지정할 수 있습니다. 하나는 포트 번호가 있는 요소이고 다른 하나는 포트 번호가 없는 요소입니다.

동일한 가상 호스트 정의에서 여러 포트가 아닌 가상 호스트의 여러 DNS 항목에 해당하는 여러 개의 HostAlias 정의를 포함할 수 있습니다. 여러 포트를 원하는 경우 포트가 서로 다른 가상 호스트 정의를 여러 개 만듭니다.

호스트 별칭에 와일드 카드 문자 '*'를 포함할 수 있습니다. 와일드 카드 문자 '*'는 호스트 별칭의 시작 부분 (첫 번째 '.' 앞의 문자)에만 사용할 수 있으며 다른 문자와 혼용할 수 없습니다. 예: *.example.com 가상 호스트의 TLS 인증서에는 인증서의 CN 이름에 일치하는 와일드 카드가 있어야 합니다. 예를 들면 다음과 같습니다. *.example.com 가상 호스트 별칭에 와일드 카드를 사용하면 API 프록시가 alpha.example.com, beta.example.com, live.example.com 등 여러 하위 도메인으로 전송되는 호출을 처리할 수 있습니다. 또한 와일드 카드 별칭을 사용하면 와일드 카드가 있는 가상 호스트는 가상 호스트 1개로 간주되므로 환경당 사용하는 가상 호스트 수를 줄여 제품 한도를 넘지 않도록 유지할 수 있습니다.

클라우드의 경우: 443 이외의 포트를 사용하는 기존 가상 호스트가 있는 경우 호스트 별칭을 추가하거나 삭제할 수 없습니다.

Private Cloud의 경우: DNS 항목이 아닌 라우터의 IP 주소를 사용하여 호스트 별칭을 설정하는 경우 라우터마다 별도의 호스트 별칭을 추가하여 각 라우터의 IP 주소와 가상 호스트의 포트를 지정합니다.

없음 지원됨
인터페이스 Private Cloud용 에지에만 사용할 수 있습니다.
인터페이스

port를 바인딩할 네트워크 인터페이스를 지정합니다. 이 요소를 생략하면 포트가 모든 인터페이스에서 바인딩됩니다.

예를 들어 포트를 en0에만 바인딩하도록 지정하려면 다음과 같이 지정합니다.

<Interfaces>
  <Interface>en0</Interface>
</Interfaces>

'ifconfig -a' 명령어를 실행하여 시스템에서 사용 가능한 인터페이스를 확인합니다.

없음 모든 인터페이스
RetryOptions Edge Cloud 및 Private Cloud 4.18.01 이상에서 사용할 수 있습니다.
RetryOption

메시지 프로세서가 다운될 때 라우터가 이 가상 호스트에 대해 어떻게 반응할지 구성합니다.

<RetryOption>를 사용하여 여러 값을 지정할 수 있습니다. 유효한 값은 다음과 같습니다.

off 재시도를 사용 중지하고 요청 시 가상 호스트가 실패 코드를 반환합니다.
http_599 (기본값) 라우터가 메시지 프로세서로부터 HTTP 599 응답을 수신하면 라우터는 다음 메시지 프로세서에 요청을 전달합니다.

HTTP 599는 메시지 프로세서가 종료될 때 생성되는 특수 응답 코드입니다. 메시지 프로세서는 모든 기존 요청을 완료하려고 시도하지만 새로운 요청이 있을 경우 HTTP 599로 응답하여 다음 메시지 프로세서에서 요청을 재시도하도록 라우터에 신호를 보냅니다.

error 메시지 프로세서와의 연결을 설정하거나, 메시지 프로세서에 요청을 전달하거나, 메시지 프로세서에서 응답 헤더를 읽는 동안 오류가 발생하면 라우터는 다음 메시지 프로세서로 요청을 전달합니다.
timeout 메시지 프로세서와의 연결을 설정하거나 메시지 프로세서에 요청을 전달하거나 메시지 프로세서에서 응답 헤더를 읽는 동안 시간 초과가 발생하면 라우터는 요청을 다음 메시지 프로세서로 전달합니다.
invalid_header 메시지 프로세서가 비어 있거나 잘못된 응답을 반환하면 라우터는 요청을 다음 메시지 프로세서로 전달합니다.
http_XXX 메시지 프로세서가 HTTP 코드 XXX를 포함하는 응답을 반환하면 라우터는 다음 메시지 프로세서에 요청을 전달합니다.

여러 값을 지정하는 경우 라우터는 논리적 OR을 사용하여 값을 결합합니다.

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

<RetryOptions>
  <RetryOption>http_599</RetryOption>
  <RetryOption>error</RetryOption>
  <RetryOption>timeout</RetryOption>
  <RetryOption>invalid_header</RetryOption>
</RetryOptions>
ListenOptions Private Cloud 4.18.01 이상 및 Edge Cloud에서 Apigee Edge 지원에 요청하면 사용할 수 있습니다.
ListenOption

TCP 패스스루 모드에서 ELB를 사용하여 에지 라우터에 대한 요청을 처리하는 경우 라우터는 ELB의 IP 주소를 실제 클라이언트 IP 대신 클라이언트 IP로 취급합니다. 라우터에 실제 클라이언트 IP가 필요한 경우 TCP 패킷의 클라이언트 IP를 전달할 수 있도록 ELB에서 proxy_protocol를 사용 설정합니다. 또한 라우터에서 가상 호스트의 <ListenOption>proxy_protocol로 설정해야 합니다. ELB는 TCP 패스스루 모드이므로 일반적으로 라우터에서 TLS를 종료합니다. 따라서 일반적으로 TLS를 사용하도록 구성할 때만 proxy_protocol를 사용하도록 가상 호스트를 구성합니다.

<ListenOption>의 기본값은 빈 문자열입니다.

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

<ListenOptions>
  <ListenOption>proxy_protocol</ListenOption>
</ListenOptions>

나중에 <ListenOption>를 설정 해제하려면 가상 호스트를 업데이트하고 업데이트에서 <ListenOptions> 태그를 생략합니다.

SSLInfo
사용 설정됨

단방향 TLS/SSL을 사용 설정합니다. 인증서와 비공개 키가 포함된 키 저장소를 정의해야 합니다.

클라우드의 경우: Symantec 또는 VeriSign과 같은 신뢰할 수 있는 기관에서 서명한 인증서가 있어야 합니다. 자체 서명된 인증서나 자체 서명된 CA에서 서명한 리프 인증서는 사용할 수 없습니다.

클라우드의 경우: 기존 가상 호스트가 443이 아닌 다른 포트를 사용하도록 구성된 경우 TLS 설정을 변경할 수 없습니다. 즉, TLS 설정을 사용에서 사용 중지로 또는 사용 중지에서 사용으로 변경할 수 없습니다.

false No
ClientAuthEnabled 에지 (서버)와 요청을 실행하는 앱 (클라이언트) 간에 양방향 또는 클라이언트 TLS를 사용 설정합니다. 양방향 TLS를 사용 설정하려면 TLS 클라이언트의 인증서가 포함된 Edge에 트러스트 저장소를 설정해야 합니다. false No
KeyStore

Edge의 키 저장소 이름입니다.

Apigee에서는 라우터를 다시 시작하지 않고도 키 저장소를 변경할 수 있도록 참조를 사용하여 키 저장소 이름을 지정하는 것이 좋습니다. 자세한 내용은 TLS 구성 옵션을 참조하세요.

없음 사용 설정이 true인 경우 예
KeyAlias 키 저장소에 인증서와 비공개 키를 업로드할 때 지정된 별칭입니다. 별칭 이름은 문자 그대로 지정해야 하며, 참조는 사용할 수 없습니다. 자세한 내용은 TLS 구성 옵션을 참조하세요. 없음 사용 설정이 true인 경우 예
TrustStore

양방향 TLS에 사용되는 인증서 또는 인증서 체인이 포함된 Edge의 트러스트 저장소 이름입니다. <ClientAuthEnabled>이 true인 경우 필수입니다.

Apigee에서는 라우터를 다시 시작할 필요 없이 트러스트 저장소를 변경할 수 있도록 참조를 사용하여 트러스트 저장소 이름을 지정하는 것이 좋습니다. 자세한 내용은 TLS 구성 옵션을 참조하세요.

없음 No
IgnoreValidationErrors

true인 경우 TLS 인증서 오류를 무시하도록 지정합니다. 이는 cURL의 '-k' 옵션과 유사합니다.

이 옵션은 대상 서버 및 대상 엔드포인트에 TLS를 구성할 때와 양방향 TLS를 사용하는 가상 호스트를 구성할 때 유효합니다.

대상 엔드포인트/대상 서버와 함께 사용될 때 백엔드 시스템이 SNI를 사용하고 호스트 이름과 일치하지 않는 주체 고유 이름(DN)이 있는 인증서를 반환하는 경우 오류를 무시할 수 있는 방법이 없으며 연결에 실패합니다.

false No
암호화

Edge for Private Cloud 버전 4.15.07 이하만 해당합니다.

가상 호스트에서 지원하는 암호화를 지정합니다. 암호화를 지정하지 않으면 JVM에 사용 가능한 모든 암호화가 허용됩니다.

암호화를 제한하려면 다음 요소를 추가합니다.

<Ciphers>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
모두 JVM에서 지원 No
프로토콜

Edge for Private Cloud 버전 4.15.07 이하만 해당합니다.

가상 호스트에서 지원하는 프로토콜을 지정합니다. 프로토콜이 지정되지 않으면 JVM에 사용 가능한 모든 프로토콜이 허용됩니다.

프로토콜을 제한하려면 다음 요소를 추가하세요.

<Protocols>
  <Protocol>TLSv1</Protocol>
  <Protocol>TLSv1.2</Protocol>
  <Protocol>SSLv2Hello</Protocol>
</Protocols>
모두 JVM에서 지원 No
UseBuiltInFreeTrialCert 에지 클라우드에서만 사용할 수 있습니다.
UseBuiltInFreeTrialCert

유료 Edge for Cloud 계정이 있지만 아직 TLS 인증서와 키가 없는 경우 Apigee 무료 체험판 인증서와 키를 사용하는 가상 호스트를 만들 수 있습니다. 즉, 먼저 키 저장소를 만들지 않고도 가상 호스트를 만들 수 있습니다.

*.apigee.net 도메인에 대해 Apigee 무료 체험판 인증서가 정의되었습니다. 따라서 가상 호스트의 <HostAlias>*.apigee.net 형식이어야 합니다.

Apigee 무료 체험판 인증서 및 키를 사용하는 가상 호스트 정의를 참조하세요.

false No
PropagateTLSInformation 에지 클라우드용 알파 버전에서만 사용할 수 있습니다.
ConnectionProperties

Edge에서 TLS 연결 정보를 캡처할 수 있습니다. 그런 다음 이 정보를 API 프록시에서 흐름 변수로 사용할 수 있습니다. 자세한 내용은 API 프록시에서 TLS 연결 정보에 액세스를 참조하세요.

false No
ClientProperties

양방향 TLS에서 Edge가 캡처한 클라이언트 인증서 세부정보를 캡처할 수 있습니다. 그런 다음 이 정보를 API 프록시에서 흐름 변수로 사용할 수 있습니다. 자세한 내용은 API 프록시에서 TLS 연결 정보에 액세스를 참조하세요.

false No
속성 Edge Cloud 및 Private Cloud 4.17.01 이상에서 사용할 수 있습니다.
proxy_read_timeout

메시지 프로세서와 라우터 간의 시간 제한 기간(초)을 설정합니다. 라우터는 연결을 끊고 이 기간이 만료되기 전에 메시지 프로세서로부터 응답을 받지 못하면 HTTP 504 응답을 반환합니다.

Proxy_read_timeout 값은 메시지 프로세서가 사용하는 타겟 제한 시간 값보다 커야 합니다. 이렇게 하면 메시지 프로세서가 응답을 반환하기 전에 라우터가 시간 초과되지 않습니다. 메시지 프로세서의 기본 목표 제한 시간은 메시지 프로세서에 대해 conf_http_HTTPTransport.io.timeout.millis 토큰에 정의된 대로 55초 55,000밀리초입니다.

57 No
keepalive_timeout

클라이언트가 Keep-Alive 헤더가 포함된 요청을 실행할 때 클라이언트와 라우터 간의 제한 시간(초)을 설정합니다. 라우터는 기간이 만료될 때까지 연결을 열린 상태로 유지합니다.

라우터가 현재 메시지 프로세서의 응답을 기다리고 있는 경우에는 연결을 닫지 않습니다. 라우터가 클라이언트에 응답을 반환한 후에만 제한 시간이 시작됩니다.

65 No
ssl_ciphers

가상 호스트에서 지원하는 암호화를 설정하여 라우터에 설정된 기본 암호화를 재정의합니다.

다음과 같은 형식으로 콜론으로 구분된 암호화 목록을 지정합니다.

<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property>

이 토큰에서 허용되는 구문 및 값에 대한 자세한 내용은 https://www.openssl.org/docs/man1.0.2/man1/ciphers.html을 참조하세요. 이 토큰은 TLS_RSA_WITH_AES_128_CBC_SHA256과 같은 Java/JSSE 암호화 이름이 아니라 AES128-SHA256과 같은 OpenSSL 암호화 이름을 사용합니다.

높음:!aNULL:

!MD5:

!DH+3DES:

!kEDH

No
ssl_protocols

Private Cloud용 에지에만 사용할 수 있습니다.

가상 호스트에서 지원하는 TLS 프로토콜을 공백으로 구분된 목록으로 설정하여 라우터에 설정된 기본 프로토콜을 재정의합니다.

참고: 두 개의 가상 호스트가 동일한 포트를 공유하는 경우 ssl_protocols를 동일한 프로토콜로 설정해야 합니다. 즉, 동일한 포트를 공유하는 가상 호스트는 정확히 동일한 프로토콜을 지원해야 합니다.

다음과 같은 형식으로 공백으로 구분된 TLS 프로토콜 목록을 지정합니다.

<Property name="ssl_protocols">TLSv1 TLSv1.2</Property>
TLSv1 TLSv1.1 TLSv1.2 No
proxy_request_buffering

요청 본문의 버퍼링을 사용 (설정)하거나 사용 중지 (해제)합니다. 버퍼링이 사용 설정되면 라우터는 요청 본문을 메시지 프로세서에 전송하기 전에 전체 요청 본문을 버퍼링합니다. 오류가 발생하면 라우터는 다른 메시지 프로세서를 다시 시도할 수 있습니다.

해제되면 버퍼링이 사용 중지되고 요청 본문이 수신되는 즉시 메시지 프로세서로 전송됩니다. 오류가 발생하면 라우터는 다른 메시지 프로세서에 대한 요청을 재시도하지 않습니다.

세션: No
proxy_buffering 응답의 버퍼링을 사용 설정 (사용)하거나 사용 중지 (사용 중지)합니다. 버퍼링이 사용 설정되면 라우터에서 응답을 버퍼링합니다. 버퍼링이 꺼져 있으면 응답은 라우터에서 수신하는 즉시 클라이언트에 동기식으로 전달됩니다. 세션: No