기본 구조

WebtoB 환경 설정은 하나의 WebtoB 노드(Node)와 웹 서버의 동작에 대해 설정합니다.

WebtoB의 환경 설정 파일은 YAML과 JSON 포맷을 지원합니다. 이때 "절 이름", "항목 이름", "설정값"으로 구성됩니다.

다음은 JSON 포맷의 설정 형태입니다.

"절 이름": {
  "항목 이름" : 설정값,
  ...,
  "항목 이름" : 설정값
}

절을 시작한 이후 정의할 이름을 설정하고, 각 절에서 설정할 수 있는 각각의 항목을 설정합니다.

환경 설정은 포맷에 따라 JSON 또는 YAML 작성 규칙에 준수해서 설정합니다.

 

다음은 JSON 포맷의 설정 예시입니다.

{
  "node": {
    "name": "webtob_node",
    "hth_count": 1,
    "worker_threads": 8
  },
  "server": {
    "http": {
      "common_config": {
        "doc_root": "docs",
        "access_log": "access_log1"
      },
      "http_servers": [
        {
          "name": "http1",
          "port": 8080,
          "enable_ssl": true,
          "ssl_name": [
            "ssl1"
          ]
        }
      ]
    },
    "wjp": {
      "port": 9900,
      "wjp_servers": [
        {
          "name": "MyGroup1"
        }
      ]
    }
  },
  "logging": {
    "access_log": [
      {
        "name": "access_log1",
        "level": "INFO",
        "format": "DEFAULT",
        "handlers": {
          "file_handler": {
            "file_name": "logs/access.log"
          }
        }
      }
    ],
    "error_log": {
      "level": "INFO",
      "handlers": {
        "file_handler": {
          "file_name": "logs/errors.log"
        }
      }
    },
    "system_log": [
      {
        "name": "webtob",
        "level": "INFO",
        "handlers": {
          "file_handler": {
            "file_name": "logs/webtob.log"
        }
      }
    ]
  },
  "destination": {
    "jeus": [
      {
        "name": "MyGroup1"
      }
    ],
    "reverse_proxy": {
      "reverse_proxy_group": [
      {
        "name": "rproxyg1",
        "reverse_proxy_server": [
          {
            "address": "internal.server:80",
            "name": "rproxy1"
          }
        ]
      }
    ]},
    "htmls": [
      {
        "name": "htmls1"
      }
    ]
  },
  "service": {
    "uri": [
      {
        "name": "uri1",
        "target_http_servers": [
          "http1"
        ],
        "match": {
          "type": "prefix",
          "target": "/rproxy",
          "rewrite": "/"
        },
        "destination": {
          "type": "REVERSE_PROXY",
          "target": "rproxyGroup1"
        }
      }
    ],
    "ext": [
      {
        "name": "ext1",
        "target_http_servers": [
          "*"
        ],
        "match": {
          "type": "exact",
          "target": "text/html"
        },
        "destination": {
          "type": "JEUS",
          "target": "MyGroup1"
        }
      }
    ]
  },
  "ssl": {
    "ssl_configs": [
      {
        "name": "ssl1",
        "certificate_file": "server.crt",
        "certificate_key_file": "key.crt"
      }
    ]
  }
}

설정 가능한 절의 종류

다음은 WebtoB에서 설정해야 하는 절에 대한 설명입니다.

설명

ACCESS 절

클라이언트가 접속을 시도할 때 IP 주소, 네트워크/넷마스크, 헤더 정보를 기준으로 요청의 허용 여부를 설정합니다.

ALIAS 절

실제 서버의 물리적 디렉터리 경로와 URI를 연결하도록 설정합니다.

DESTINATION 절

클라이언트 요청을 실제로 처리할 내부 서버에 대해 설정합니다.

ERRORDOCUMENT 절

에러 문제가 발생했을 때 대응 방법을 설정합니다.

FILTER 절

Filter 모듈을 사용할 FILTER 절을 설정합니다.

HEADERS 절

HTTP 요청 및 응답의 헤더를 제어할 때 설정합니다.

LOGGING 절

클라이언트의 요구 내역을 기록하는 형식을 지정합니다.

NODE 절

WebtoB 노드에 대한 구체적인 환경에 대해 설정합니다.

SERVER 절

클라이언트가 접속할 수 있는 정보에 대해 설정합니다.

SERVICE 절

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

SSL 절

WebtoB에서 사용할 SSL의 기능을 설정합니다.

DESTINATION, SERVER, SERVICE 절은 반드시 설정해야 합니다.

설정 항목 값의 형식 및 설정 방법

항목의 설정값은 항목에 따라 object, integer, string, boolean, array 형식으로 설정하며, 각각 다음과 같이 설정합니다.

종류 설명

object

하위에 여러 설정을 갖는 경우 설정합니다.

  • JSON 포맷: 중괄호({ })로 묶기

  • YAML 포맷: 개행 후 한 단계 들여쓰기

integer

숫자를 설정합니다.

string

문자열을 설정합니다.

boolean

true 또는 false로 설정합니다.

array

동일한 형식의 설정을 여러 개 설정합니다. 대괄호([ ])로 묶어서 각 설정을 콤마(,)로 구분하거나, 개행 후 하이픈(-)으로 구분하여 표현할 수 있습니다.

본 안내서에서 설명하는 설정 항목의 내용을 제대로 이해하려면, 아래의 기본 규칙을 먼저 숙지해야 합니다.

  • 이름 앞에 해시 기호(#)로 시작하는 항목은 선택 항목입니다.

  • 형식이 대괄호( [ ] )로 쌓여 있으면 특정 형식으로 구성된 array 형식을 의미합니다.

  • 기본값이 있는 설정의 경우 해시 기호(#) 이후에 표시합니다.

  • integer 형식의 경우 괄호를 사용하여 설정 가능한 범위를 표시합니다.

  • 최댓값 제한이 없을 경우 생략하며, INT_MAX(2147483647)까지만 사용할 수 있습니다.

  • "$ENV"는 환경 변수를 참조할 수 있다는 의미입니다.

  • "R.PATH"는 상대 경로로 설정하는 경우 $WEBTOB6_HOME_PATH로부터의 상대 경로로 사용한다는 의미입니다.

  • object 형식의 경우 중괄호 ( { } )로 내부 설정에 대해 표현합니다.

  • object 형식의 경우 같은 형식이 상위 설정에 있을 경우 "{…​}" 로 설명을 생략합니다.

  • "COMMON"는 설정하지 않은 경우 상위 설정을 따른다는 의미입니다.