SERVICE 절

HTTP 요청을 처리할 내부 서버를 요청의 URI, EXT 기반으로 설정합니다.

설정 항목

다음은 SERVICE 절의 환경 설정 형식입니다.

"service": {
    "uri": [
        {
            "name": string,
            #"target_http_servers": [string],       # ["*"]
            "match": {
                #"rewrite": string,
                #"type": string,                    # "prefix"
                "target": string,
                #"redirect": string,
                #"redirect_status": integer,        # 302
                #"enable_cache": boolean            # false
            },
            "destination": {
                "type": string,
                "target": string
            },
            #"access": string
        }
    ]
    "ext": [
        {
            "name": string,
            #"target_http_servers": [string],       # ["*"]
            "match": {
                #"type": string,                    # "exact"
                "target": string,
                #"enable_cache": boolean            # false
            },
            "destination": {
                "type": string,
                "target": string
            },
            #"access": string
        }
    ]
}

절과 설정 항목의 구성에 대한 기호나 내용에 대한 자세한 내용은 설정 항목 값의 형식 및 설정 방법을 참고합니다.

uri

URI 절은 클라이언트 요구의 URI(Uniform Resource Identifier) 값에 따라 요청을 처리할 목적지(destination)를 구분할 수 있도록 설정합니다.

예를 들어 사용자가 http://www.tmax.co.kr/JSV/test를 호출한 경우 "/JSV/" URI를 jeus로 설정하여 처리할 수 있습니다.

구분 설명

자료형

array(object)

아래와 같은 요청이 있을 때는 <first>로 시작하는 URI로 설정해야 합니다.

http://<hostname>:<port>/<first>/<second>/index.html

uri/name (필수 항목)

URI 절의 이름을 설정합니다.

구분 설명

자료형

string

범위

31자 이내

uri/target_http_servers

특정 서버가 처리하도록 설정할 경우 해당 서버의 이름을 설정합니다. (예: "target_http_servers": "http1")

만약 특정 vhost가 처리하도록 설정할 경우에는 "서버의 이름.vhost 이름"으로 설정합니다. (예: "target_http_servers": "http1.vhost1")

구분 설명

자료형

array[string]

범위

64개 이내[31자 이내]

기본값

["*"]

다음은 설정값에 대한 설명입니다.

설정값 설명

"*"

모든 서버에 설정됩니다.

uri/match (필수 항목)

요청의 URI가 특정 패턴과 일치하는 경우 해당 요청을 처리할 규칙을 설정합니다.

구분 설명

자료형

object

uri/match/rewrite

uri/match/target을 어떤 값으로 변경할지 설정합니다.

구분 설명

자료형

string

범위

255자 이내

uri/match/type

URI에 설정된 패턴의 유형을 설정합니다. 패턴 유형에 따라 HTTP 요청 경로와 매치하는 방식이 달라집니다.

구분 설명

자료형

string

범위

"prefix"

기본값

"prefix"

다음은 설정값에 대한 설명입니다.

설정값 설명

prefix

uri/match/target에 설정된 패턴이 HTTP 요청 URL의 접두사(prefix)입니다.

(예: 패턴 "/uri/"는 "/uri/a/", "/uri/a/b/", "/uri/a/b/c" 등의 요청 경로와 매치)

uri/match/target (필수 항목)

HTTP 요청 경로와 매치할 패턴을 설정합니다. 매치되면 해당 요청은 URI 절의 설정이 적용됩니다.

구분 설명

자료형

string

범위

255자 이내

uri/match/redirect

지정된 URI 요청을 다른 URI로 매핑하도록 설정합니다.

URI 절에 설정된 redirect_status의 값에 따라 redirect에 설정된 값이 HTTP 응답의 Location 헤더 필드에 설정되어 사용자에게 전달됩니다. 만약 redirect_status의 값을 생락한 경우 기본값으로 "302 Found"가 사용됩니다.

구분 설명

자료형

string

범위

255자 이내

uri/match/redirect_status

다른 URI로 리다이렉트 시 사용할 HTTP 상태 코드를 설정합니다.

구분 설명

자료형

integer

범위

301 | 302 | 303 | 305 | 407 | 410

기본값

302

다음은 설정값에 대한 설명입니다.

설정값 별칭 설명

301

permanent

"301 Moved Permanently"로 응답합니다.

302

found

"302 Found"로 응답합니다.

303

seeother

"303 See Other"로 응답합니다.

305

useproxy

"305 Use Proxy"로 응답합니다.

307

temp

"307 Temporary Redirect"로 응답합니다.

410

gone

"410 Gone"로 응답합니다.

uri/match/enable_cache

콘텐츠의 캐시 유무를 설정합니다.

구분 설명

자료형

boolean

기본값

false

uri/destination (필수 항목)

URI 서비스의 목적지를 설정합니다.

구분 설명

자료형

object

uri/destination/type (필수 항목)

목적지의 유형을 설정합니다.

구분 설명

자료형

string

범위

"HTMLS" | "JEUS" | "REVERSE_PROXY"

uri/destination/target (필수 항목)

목적지의 대상을 설정합니다. 이때 DESTINATION 절에 설정된 name과 동일해야 합니다.

구분 설명

자료형

string

범위

127자 이내

uri/match/access

특정 IP에서 들어온 요청에 대해 허용 여부를 설정합니다. 이때 설정값은 access/access_list/name에 설정된 이름과 일치해야 합니다.

구분 설명

자료형

string

범위

255자 이내

ext

클라이언트가 요구한 파일의 확장자명에 따라 처리 담당 프로세스를 설정합니다.

구분 설명

자료형

array(object)

WebtoB는 기본적인 모든 MIME-Type에 대한 처리 담당 프로세스가 설정되어 있으나, 추가적인 설정이 필요할 경우 해당 절에서 수정할 수 있습니다.

ext/name (필수 항목)

EXT 절의 이름을 설정합니다.

구분 설명

자료형

string

범위

31개 이내

ext/target_http_servers

특정 서버가 처리하도록 설정할 경우 해당 서버의 이름을 설정합니다. (예: "target_http_servers": "http1")

만약 특정 vhost가 처리하도록 설정할 경우에는 "서버의 이름.vhost 이름"으로 설정합니다. (예: "target_http_servers": "http1.vhost1")

구분 설명

자료형

array(string)

범위

64개 이내(31자 이내)

기본값

["*"]

다음은 설정값에 대한 설명입니다.

설정값 설명

"*"

모든 서버에 설정됩니다.

ext/match (필수 항목)

파일의 확장자명이 특정 패턴과 일치하는 경우 해당 파일을 처리할 규칙을 설정합니다.

구분 설명

자료형

object

ext/match/type

ext/match/target에 설정된 패턴의 유형을 설정합니다. 패턴 유형에 따라 HTTP 요청 경로와 매치하는 방식이 달라집니다.

구분 설명

자료형

string

범위

"exact"

기본값

"exact"

다음은 설정값에 대한 설명입니다.

설정값 설명

exact

설정된 패턴이 확장자와 일치하면 매치합니다.

(예: 패턴 "abc"는 확장자가 "abc"일 경우만 매치합니다. 이외 모든 확장자는 매치하지 않습니다.)

ext/match/target (필수 항목)

HTTP 요청 경로의 확장자와 매치할 패턴을 설정합니다. 매치되면 해당 요청은 EXT 절의 설정이 적용됩니다.

구분 설명

자료형

string

범위

127개 이내

ext/match/enable_cache

콘텐츠의 캐시 유무를 설정합니다.

구분 설명

자료형

boolean

기본값

false

ext/destination (필수 항목)

Extension 서비스의 목적지를 설정합니다.

구분 설명

자료형

string

ext/destination/type (필수 항목)

목적지의 유형을 설정합니다.

구분 설명

자료형

string

범위

"HTMLS" | "JEUS" | "REVERSE_PROXY"

ext/destination/target (필수 항목)

목적지의 대상을 설정합니다. 이때 DESTINATION 절에 설정된 name과 동일해야 합니다.

구분 설명

자료형

string

범위

127자 이내

ext/match/access

특정 IP에서 들어온 요청에 대해 허용 여부를 설정합니다. 이때 설정값은 access/access_list/name에 설정된 이름과 일치해야 합니다.

구분 설명

자료형

string

범위

255자 이내

설정 예시

다음은 SERVICE 절을 설정한 예시입니다.

"service": {
    "uri": [
        {
            "name": "static_uri",
            "target_http_servers": [
                "*"
            ],
            "match": {
                "type": "prefix",
                "target": "/static",
                "rewrite": "/"
            },
            "destination": {
                "type": "HTMLS",
                "target": "htmls1"
            }
        }
    ],
    "ext": [
        {
            "name": "ext1",
            "target_http_servers": [
                "http1.vhost1"
            ],
            "match": {
                "type": "exact",
                "target": "text/html"
            },
            "destination": {
                "type": "HTMLS",
                "target": "html1"
            }
        }
    ]
}