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/target_http_servers
특정 서버가 처리하도록 설정할 경우 해당 서버의 이름을 설정합니다. (예: "target_http_servers": "http1")
만약 특정 vhost가 처리하도록 설정할 경우에는 "서버의 이름.vhost 이름"으로 설정합니다. (예: "target_http_servers": "http1.vhost1")
구분 | 설명 |
---|---|
자료형 |
array[string] |
범위 |
64개 이내[31자 이내] |
기본값 |
["*"] |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
"*" |
모든 서버에 설정됩니다. |
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/destination/target (필수 항목)
목적지의 대상을 설정합니다. 이때 DESTINATION 절에 설정된 name과 동일해야 합니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
127자 이내 |
uri/match/access
특정 IP에서 들어온 요청에 대해 허용 여부를 설정합니다. 이때 설정값은 access/access_list/name에 설정된 이름과 일치해야 합니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
ext
클라이언트가 요구한 파일의 확장자명에 따라 처리 담당 프로세스를 설정합니다.
구분 | 설명 |
---|---|
자료형 |
array(object) |
WebtoB는 기본적인 모든 MIME-Type에 대한 처리 담당 프로세스가 설정되어 있으나, 추가적인 설정이 필요할 경우 해당 절에서 수정할 수 있습니다. |
ext/target_http_servers
특정 서버가 처리하도록 설정할 경우 해당 서버의 이름을 설정합니다. (예: "target_http_servers": "http1")
만약 특정 vhost가 처리하도록 설정할 경우에는 "서버의 이름.vhost 이름"으로 설정합니다. (예: "target_http_servers": "http1.vhost1")
구분 | 설명 |
---|---|
자료형 |
array(string) |
범위 |
64개 이내(31자 이내) |
기본값 |
["*"] |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
"*" |
모든 서버에 설정됩니다. |
ext/match/type
ext/match/target에 설정된 패턴의 유형을 설정합니다. 패턴 유형에 따라 HTTP 요청 경로와 매치하는 방식이 달라집니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
"exact" |
기본값 |
"exact" |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
exact |
설정된 패턴이 확장자와 일치하면 매치합니다. (예: 패턴 "abc"는 확장자가 "abc"일 경우만 매치합니다. 이외 모든 확장자는 매치하지 않습니다.) |
ext/match/target (필수 항목)
HTTP 요청 경로의 확장자와 매치할 패턴을 설정합니다. 매치되면 해당 요청은 EXT 절의 설정이 적용됩니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
127개 이내 |
설정 예시
다음은 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" } } ] }