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/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 |
설정된 패턴이 확장자와 일치하면 매치합니다. |
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"
}
}
]
}