WebtoB 설정 파일
WebtoB 설정 파일 이름은 http.m이며, 위치는 ${WEBTOB_HOME}/conf/ 디렉터리에 위치해 있다.
1. http.m 파일
아래는 설치 시 기본적으로 설정되어 있는 WebtoB5.0.0.4 Version http.m 파일이다.
*DOMAIN
webtob1
*NODE
${NODENAME} WEBTOBDIR="/sw/web/webtob",
SHMKEY = 54000,
DOCROOT="/sw/web/webtob/docs",
PORT = "8080",
HTH = 1,
#Group = "nobody",
#User = "nobody",
NODENAME = "$(NODENAME)",
ERRORDOCUMENT = "503",
#Options="IgnoreExpect100Continue",
#JSVPORT = 9900,
LOGGING = "log1",
ERRORLOG = "log2",
SYSLOG = "syslog"
*HTH_THREAD
hth_worker
SendfileThreads = 4,
AccessLogThread = Y,
#ReadBufSize=1048576, #1M
#HtmlsCompression="text/html",
#SendfileThreshold=32768,
WorkerThreads=8
*SVRGROUP
htmlg SVRTYPE = HTML
cgig SVRTYPE = CGI
ssig SVRTYPE = SSI
*SERVER
cgi SVGNAME = cgig, MinProc = 2, MaxProc = 10, ASQCount = 1
ssi SVGNAME = ssig, MinProc = 2, MaxProc = 10, ASQCount = 1
*URI
uri1 Uri = "/cgi-bin/", Svrtype = CGI
*ALIAS
alias1 URI = "/cgi-bin/", RealPath = "/home/sfm/webtob2/cgi-bin/"
*LOGGING
syslog Format = "SYSLOG", FileName = "/sw/web/webtob/log/system.log_%M%%D%%Y%",
Option = "sync"
log1 Format = "DEFAULT", FileName = "/sw/web/webtob/log/access.log_%M%%D%%Y%",
Option = "sync"
log2 Format = "ERROR", FileName = "/sw/web/webtob/log/error.log_%M%%D%%Y%",
Option = "sync"
*ERRORDOCUMENT
503 status = 503,
url = "/503.html"
2. 기본 설정
2.1. Domain절
WebtoB 도메인을 설정한다. DOMAIN절은 반드시 설정해야 하며, 하나만 설정한다.
기본 설정 파일에서 아래 부분이다.
*DOMAIN
webtob1
2.2. NODE절
WebtoB 노드에 대한 구체적인 환경에 대한 설정이다. NODE절은 노드의 전체적인 동작과 관련된 설정을 정의한다. VHOST절을 설정하여 가상 호스트를 설정한 경우 NODE절 설정은 기본 호스트로 동작한다.
기본 설정 파일에서 아래 부분이다.
*NODE
${NODENAME} WEBTOBDIR="/sw/web/webtob",
SHMKEY = 54000,
DOCROOT="/sw/web/webtob/docs",
PORT = "8080",
HTH = 1,
#Group = "nobody",
#User = "nobody",
NODENAME = "$(NODENAME)",
ERRORDOCUMENT = "503",
#Options="IgnoreExpect100Continue",
#JSVPORT = 9900,
LOGGING = "log1",
ERRORLOG = "log2",
SYSLOG = "syslog"
WEBTOBDIR
- WebtoB가 설치된 경로를 설정한다.
- 환경변수를 사용할 수 있으며, $WEBTOBDIR로 설정하여 관리할 수 있다.
SHMKEY
- 공유 메모리 세그먼트를 설정한다. WebtoB 내부 프로세스는 서로 정보를 공유하기 위해 공유 메모리를 사용한다.
- 다음의 3개 Key가 사용된다.
- shmkey, shmkey +1, shmkey +2
- 공유 메모리 key값을 정의하기 전에 이 Key 값들이 다른 프로그램 또는 다른 업무에서 사용되는지 반드시 확인해야 한다. 그렇지 않으면 WebtoB가 기동 될 때 프로그램과 충돌을 일으켜서 실행이 되지 않는다.
* ipcs 명령을 사용하여 공유 메모리 확인 가능. WebtoB를 강제로 종료 시킨 경우 공유 메모리가 반환되지 않고 남아있을 경우 “ipcrm” 명령을 통해 수동으로 반환할 수 있다.
DOCROOOT
- 서비스할 문서가 위치한 최상위 경로를 설정한다.
- 환경 변수를 사용할 수 있으며, 상대 경로를 설정한 경우 $WEBTOBDIR을 기준으로 절대 경로를 변환하여 설정한다.
PORT
- 사용자가 접속할 수 있는 서비스 포트를 설정한다.
HTH
- HTH 프로세스 수를 설정한다. HTH 프로세스 하나가 처리할 수 있는 접속자의 수는 제한되어 있는데, 해당 값을 늘림으로 써 접속자 수를 늘릴 수 있다.
GROUP
- 설정된 그룹 권한으로 WebtoB가 동작하도록 한다.
USER
- 설정된 사용자 권한으로 WebtoB가 동작하도록 한다.
NODENAME
- 환경 변수 $NODENAME 사용 가능하다.
- 노드의 물리적인 이름으로 운영 체제 별로 확인된 이름을 정의한다.
- 설정한 노드 이름은 반드시 /etc/hosts 파일에 등록되어 있어야 한다.
ERRORDOCUMENT
- HTTP 에러 페이지를 사용자가 지정한 페이지로 대신 사용할 경우 ERRORDOCUMENT절에 정의한 이름을 설정한다.
OPTIONS
- WebtoB가 제공하는 서비스와 기타 작동 방식에 대한 설정을 한다.
- 설정 가능한 옵션
옵션 | 설명 |
HTML | HTML 서비스를 처리한다. |
CGI | CGI 서버를 사용한다. |
PHP | PHP 서버를 사용한다. |
SSI | SSI 서버를 사용한다. |
JSV | JSV(JEUS) 서버를 사용한다. |
INDEX | 클라이언트가 특정 파일 이름을 지정하지 않고 디렉터리에 요구를 보낼 때 디렉터리의 내용을 보여준다.예를 들어 "/docroot/dir/" 요청이 오면 해당 디렉터리에 존재하는 파일 이름과 정보가 클라이언트로 전달된다. |
ALL | "HTML, CGI, PHP, SSI, JSV, INDEX"와 같다. |
StrictAuthorizationHdrFormat | HTTP 요청에 대하여 AUTHENT 절 설정을 통해 인증처리를 하는 경우 Authorization header field의 포맷을 검사한다.HTTP 요청의 Authorization header field의 포맷이 HTTP 1.1에 정의된 포맷에 맞지 않거나, 인증타입이 "Basic"이나 "Digest"가 아닌 경우 요청을 보낸 사용자에게 에러로 응답한다.하이픈(-) 설정인 경우 Authorization header field의 포맷을 검사하여 인증타입이 없는 경우 인증타입을 "Basic"으로 간주하여 처리한다. 예를 들어 Authorization header field의 값이 인증타입 없이 "YXV0aDIucGFzczp0bWF4MTIzNA=="인 경우 하이픈(-) 설정을 했다면 인증타입을 "Basic"으로 간주하여 인증처리를 하고, 하이픈(-) 설정을 하지 않았다면 인증처리 없이 사용자에게 에러로 응답한다. |
IgnoreExpect100Continue | HTTP/1.1을 요청할 때 요청 헤더에 "Expect: 100-continue"가 포함된 경우 이를 무시하도록 한다. 이 경우에는 "100 Continue"로 응답하지 않는다. |
ProcessIncompleteRequest | 클라이언트가 보낸 POST 요청의 body 데이터가 Content-Length만큼 다 도착하지 않았더라도, 클라이언트로부터 받은 body 데이터를 해당 서버로 다 보내도록 한다. |
ExcludeAllowHeaderOnError | *NODE.Method 설정을 통해 disable 된 Method 요청에 대해서 error 응답이 나갈 경우, 응답에 "Allow" Header를 포함하지 않는다. |
JSVPORT
- WebtoB와 JEUS를 연동하여 사용할 때 필요한 서비스 포트를 설정한다.
LOGGING
- WebtoB NODE절에 접근한 기록을 남긴다. WebtoB NODE절 access.log이다.
ERRORLOG
- WebtoB NODE절에 접근했을 때 에러가 발생한 경우 남기는 에러 로그 설정이다.
SYSLOG
- WebtoB System 로그를 남기는 로그 설정이다.
2.3. HTH_THREAD절
HTH 프로세스의 작업 Thread 숫자를 설정하는 부분이다.
기본 설정에서 아래 부분이다.
*HTH_THREAD
hth_worker
SendfileThreads = 4,
AccessLogThread = Y,
#ReadBufSize=1048576, #1M
#HtmlsCompression="text/html",
#SendfileThreshold=32768,
WorkerThreads=8
2.4. SVRGROUP절
WebtoB를 통해 응용 서버 프로세스를 접근하는 경우 서버 프로세스의 논리적인 연관성에 따라 이들을 그룹으로 관리할 필요가 있다. SVRGROUP절에서는 이러한 그룹에 대한 환경 설정을 한다.
기본 설정에서 아래 부분이다.
*SVRGROUP
htmlg SVRTYPE = HTML
cgig SVRTYPE = CGI
ssig SVRTYPE = SSI
SVRGROUP절 이름
- SVRGROUP절 내에서 유일한 값으로 설정한다. 위 설정 값에서는 htmlg, cgig, ssig가 해당된다.
SVRTYPE
- 서버 그룹에서 서비스할 서버 타입을 설정한다.
- 다음 설정 값에 대한 설명이다.
설정 값 | 설명 |
HTML | 정적 파일 요청을 서비스하는 서버 타입이다. |
CGI | CGI 요청을 서비스하는 서버 타입이다. |
PHP | PHP 요청을 서비스하는 서버 타입이다. |
SSI | SSI 요청을 서비스하는 서버 타입이다. |
JSV | JEUS와 연동하여 JSP, servlet 등의 요청을 서비스하는 서버 타입이다. |
WEBSTD | WBAPI로 작성된 서버의 요청을 서비스하는 서버 타입이다. |
VhostName
- 서비스할 Vhost절 이름을 설정한다.
2.5. SERVER절
SERVER절에서는 실질적으로 제공하는 서비스들을 등록한다. WebtoB는 등록된 서비스만을 처리하기 때문에 새로운 서버 프로그램이 추가되는 경우 반드시 환경 파일에 설정해야 한다.
HTH의 Worker Thread에서 HTML 서비스를 모두 처리하므로 HTML 위한 서버는 따로 설정하지 않는다.
기본 설정에서 아래 부분이다.
*SERVER
cgi SVGNAME = cgig, MinProc = 2, MaxProc = 10, ASQCount = 1
ssi SVGNAME = ssig, MinProc = 2, MaxProc = 10, ASQCount = 1
SERVER절 이름
- 하나의 서버를 의미하는 이름으로써 일반적으로 서버 이름은 유일해야 한다.
- 서버 타입이 JSV인 경우 서버 이름은 15자 이하를 사용해야 한다.
SVGNAME
- 설정되는 값은 SVRGROUP절에서 정의된 서버 그룹 이름이어야 한다.
- 서버와 SVRGROUP절의 연결을 통해서 서버가 어떤 노드에서 동작할 것인지, 어떤 리소스 매니저를 사용하는지 알 수 있다.
MinProc
- 기본적으로 기동할 서버 프로세스의 개수이다.
- 서버 프로세스의 최소 개수를 나타내는 것으로 WebtoB가 기동할 때 프로세스의 수와 같다.
MaxProc
- MinProc를 포함하여 추가적으로 기동 시킬 수 있는 최대 개수를 설정한다.
- 부하가 높아지는 경우 MaxProc개수 까지 서버 프로세스가 자동적으로 기동 된다.
ASQCount
- 자동으로 서버 프로세스를 추가 기동하기 위한 조건으로 큐에 쌓여진 요구 개수를 설정한다. 큐에 설정된 이상의 것이 쌓이게 되면 MinProc에서 MaxProc에 설정된 수 만큼 차례대로 증가하게 된다.
2.6. URI 절
URI절은 클라이언트 요구의 URI값에 따라 이를 처리하는 서비스를 구분할 수 있도록 한다. 특정 URI가 입력으로 들어온 경우 이를 특정 서비스에 처리하도록 할 수 있다.
기본 설정은 아래 부분이다.
*URI
uri1 Uri = "/cgi-bin/", Svrtype = CGI
Uri
- HTTP Requeset Path와 매치할 패턴을 설정한다. 매치 되면 해당 요청은 URI절의 설정이 적용된다.
Svrtype
- 서비스 속성 즉, 지정된 URI를 포함하는 요청이 왔을 때 처리할 서버를 설정한다.
2.7. ALIAS절
실제 서버의 물리적 디렉터리 경로와 URI를 Alias 시키도록 설정할 수 있다. 즉, 어떤 특정한 URI에 대한 요구가 들어오면 이를 실제의 물리적인 디렉터리에 매핑시켜서 이곳에서 원하는 리소스를 찾아 처리하게 하는 방식이다.
기본 설정은 아래 부분이다.
*ALIAS
alias1 URI = "/cgi-bin/", RealPath = "/home/sfm/webtob2/cgi-bin/"
URI
- Alias할 URI를 설정한다.
RealPath
- 서버 안의 물리적 디렉터리 경로 명을 설정한다.
2.8. LOGGING절
클라이언트의 요구 내역을 기록하는 형식을 지정한다. 접근 내역과 에러 내역이 따로 저장되며 저장 형식을 지정할 수 있다. 시스템 로그, 액세스 로그, 에러 로그 모두 Logging절에 설정한다.
기본 설정은 아래 부분이다.
*LOGGING
syslog Format = "SYSLOG", FileName = "/sw/web/webtob/log/system.log_%M%%D%%Y%",
Option = "sync"
log1 Format = "DEFAULT", FileName = "/sw/web/webtob/log/access.log_%M%%D%%Y%",
Option = "sync"
log2 Format = "ERROR", FileName = "/sw/web/webtob/log/error.log_%M%%D%%Y%",
Option = "sync"
FileName
- 로그 파일 이름과 저장할 경로를 설정한다.
- 파일 이름에 포함된 다음 substitution string은 파일이 생성될 때 실제 값으로 대체 된다.
String | 실제 값 |
%Y% | 년도(year)로 숫자 4개로 설정한다. (예: 2009) |
%M% | 월(month)로 숫자 2개를 설정한다. (예: 11) |
%D% | 일(day)로 숫자 2개를 설정한다. (예: 05) |
%h% | 시(hour)로 숫자 2개를 설정한다. (예: 10) |
%m% | 분(minute)으로 숫자 2개를 설정한다. (예: 30) |
%s% | 초(second)로 숫자 2개를 설정한다. (예: 45) |
Format
- 로그 파일에 기록될 메시지의 포맷을 설정한다.
- USERFORMAT절에서 정의한 로그 포맷 이름으로 설정할 수 있다.
- Format String은 액세스 로그와 에러 로그에만 적용된다. 시스템 로그는 임의 값을 설정한다.
포맷 | 설명 |
DEFAULT | Default Log File Format이다.(약자: "%h %t \"%r\" %s %b %D") |
COMMON | Common Log File Format이다.(약자: "%h %l %u %t \"%r\" %s %b") |
COMBINED | Combined Log File Format이다.(약자: "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\") |
2.9. ERRORDOCUMENT
WebtoB에서 에러 문제가 발생했을 때 특정 HTTP Response Status Code 값에 대한 특정 페이지로 Redirect 시켜 준다.
기본 설정은 아래 부분이다.
*ERRORDOCUMENT
503 status = 503,
url = "/503.html"
status
- HTTP Status Code 값을 설정한다.
Url
- DocRoot 이하의 상대 경로가 되거나 클라이언트가 해석할 수 있는 전체 경로 값을 설정한다.
'WEB > WebtoB' 카테고리의 다른 글
[WebtoB] Metrics 설정 (0) | 2024.08.01 |
---|---|
[WebtoB] 기동 및 다운 (0) | 2023.07.25 |
[WebtoB] 설 치 (0) | 2023.07.21 |