LNA Web Application Server

Guides -LENA 운영자 가이드

Web Server

Web Server를 관리하기 위한 화면을 제공한다. Node에 설치한 Web Server의 등록, 수정, 삭제가 가능하며, 시작과 종료를 수행할 수 있다.

Web Server의 속성은 아래와 같다. (*) 는 필수값

항목설명비고
StatusServer의 상태
Name(*)Server의 이름
IP(*)Server의 IP주소
Server IDServer의 Identifier
HTTP PortHTTP 포트번호
HttpS PortHTTPS 포트번호
SSLShell 실행시 SSL 기반의 패스워드 사용여부Web Server에 SSL 관련 설정을 해야 한다.
Server의 시작 및 종료
+Register 또는 버튼을 클릭하여 선택된 Server 정보가 변경 중임을 표시
버튼을 클릭하여 선택된 Server정보가 삭제됨을 표시

Server 등록

  1. +Register 버튼을 클릭한다.
  2. 등록하려는 서버를 선택한다.

  1. 버튼을 클릭하여 저장한다.

Server 수정

  1. 버튼을 클릭하여Server 정보를 수정 가능한 상태로 변경한다.
  2. Server의 속성을 수정한다.
  3. 버튼을 클릭하여 저장한다.

Server 삭제

  1. 버튼을 클릭하여 Server정보를 삭제 가능한 상태로 변경한다.
  2. 버튼을 클릭한다.
  3. OK버튼을 누르면 물리적인 Server engine에 대한 삭제 여부를 묻는 창이 출력된다.
  • No : manager DB에서만 해당 Server 정보를 삭제하고 물리적인 Server engine은 유지 (추후 Register 버튼을 통해 다시 등록 가능)
  • Yes : manager DB에서 해당 Server 정보를 삭제하고 물리적인 Server engine도 삭제

Server Start/Stop

  1. 버튼을 클릭하여 Server를 종료한다.

  2. 버튼을 클릭하여 Server를 시작한다.

    시작 가능한 상태일 경우에만 시작버튼이 활성화 된다.

Server Install

  1. 버튼을 클릭하여 Sever의 설치를 준비한다.

  1. Server ID와 Service Port를 입력한다.

  2. 버튼을 클릭하여 저장한다.

    Node에 실제 설치되어 있는 서버와 Manager에서 관리하는 서버의 정보에는 차이가 있을 수 있다. (console기반 설치 시) 서버ID중복오류가 발생하는 경우, Register기능을 이용하여 설치된 서버정보를 추가로 확인해야 한다.

    Manager IP는 Node의 host IP로 자동 입력된다. 네트워크 구성에 따라 자동 입력된 IP가 실제 네트워크 IP와 다른 경우가 발생할 수 있다. 이때는 Manager IP를 수정하여 입력해야 한다.

Server Clone

  1. 버튼을 클릭하여 Web Server의 복제를 준비한다.

  1. Node List를 선택하여 복제할 서버를 선택한다..

  2. Clone Sever ID와 Service Port를 입력한다..

  3. 버튼을 클릭하여 저장한다.

    Node에 실제 설치되어 있는 서버와 Manager에서 관리하는 서버의 정보에는 차이가 있을 수 있다. (console기반 설치 시) 서버ID중복오류가 발생하는 경우, Register기능을 이용하여 설치된 서버정보를 추가로 확인해야 한다.

Server 설정 정보 관리

Web Server의 설정 정보를 변경하는 기능을 제공한다. Web Server 목록에서 Server를 선택하면 설정 정보를 관리하는 화면으로 이동한다.

General

Web Server의 일반적인 설정 값과 Connection, Process 정보를 편집할 수 있다. Web Server의 설정 정보는 저장 시 설정 파일에 대한 Validation을 수행하게 되어 있으며, 설정 파일 오류로 인한 서버 기동 장애가 발생을 최소화하고 있다.

  설정파일 오류 시 파일이 저장되지 않고 오류 메시지가 출력된다
  ex) AH00526: Syntax error on line 253 … Argument for 'Require all' must be 'granted' or 'denied'

설정 정보의 상세 내용은 다음과 같다. (*) 는 필수값

1) Server Info (env.sh과 /conf/httpd.conf 파일 관리)
항목설명비고
Run UserWeb server 시작/종료 스크립트 실행계정
Http Port(*)HTTP Port
Https Port(*)HTTPS Port
Staging Service PortStaging 모드로 기동 시 사용하는 서비스 포트
Staging Https PortStaging 모드로 기동 시 사용하는 HTTPS 포트
Document Root(*)Web Server에서 제공하는 문서들이 저장되어 있는 기본 폴더 경로
Log Home(*)Web Server의 로그정보를 가지고 있는 폴더 경로
Welcome Page웹사이트의 초기페이지 문서로 어떤 파일을 사용할 것인지 정의
Directory/Path어떤 서비스와 기능을 허용/거부 할지를 설정할 웹 문서들이 있는 디렉토리 경로
Directory/Options지정한 디렉토리 이하의 모든 파일과 디렉토리들에 적용할 접근제어 설정
+Indexes는 상위 디렉토리 설정에 없는 Indexes설정을 추가
-FollowSymLinks는 상위 디렉토리 설정에 허가된 FollowSymLinks를 제거
Directory/AllowOverride설정한 디렉토리에 접근 시 어떤 방식으로 인증할 것인지 설정
Directory/Require인증된 사용자가 허가된 Action을 수행하는지 검증
2) Connection Info (/conf/extra/httpd-default.conf 파일 관리)
항목설명비고
Timeout(*)클라이언트와 서버간에 연결 후 일정 시간 동안 아무 이벤트가 발생하지 않았을 때 서버가 기다리다가 연결을 끊을 시간Default 60(sec)
KeepAlive(*)특정 한 프로세스가 특정 사용자의 요청작업을 계속해서 처리할지 여부
MaxKeepAliveRequests(*)KeepAlive가 On일 때 유효한 값으로 하나의 프로세스가 특정 사용자의 요청을 지정한 횟수만큼 처리
이 값을 넘어서면 해당 프로세스는 죽고 다른 프로세스가 요청을 처리함
KeepAliveTimeout(*)KeepAlive가 On 일 때 유효한 값으로 설정한 시간 동안 요청이 없으면 연결을 끊기 위해 타임아웃 시킴Default 5(sec)
RequestReadTimeout(*)사용자로부터 request header와 body를 받기 위해 기다리는 시간
설정된 시간 안에 받지 못하면 408 REEQUEST TIME OUT 에러를 보냄
3) Process Info (/conf/extra/httpd-mpm.conf 파일 관리)
항목설명비고
StartServers(*)Web Server 기동 시 초기화 되는 서버 프로세스 수
ServerLimit(*)MaxClients가 생성할 수 있는 최대 프로세스 값
ThreadLimit(*)
MinSpareThreads(*)대기하고 있는 최소 Thread 수
MaxSpareThreads(*)대기하고 있는 최대 Thread 수
ThreadPerChild(*)각각의 자식 프로세스가 지속적으로 가질 수 있는 Thread 수
MaxRequestWorkers(*)
MaxConnectionPerChild(*)자식 프로세스가 서비스 할 수 있는 최대 요청 수
  설정을 변경할 경우 수정된 사항의 반영을 위하여 서버의 재기동이 필요하다.

Connector

Web Server의 Connector정보와 Load Balancer정보를 편집할 수 있다. Connector Info 영역의 정보는 Web Server 내에 설정된 Load Balancer의 기본 설정 값을, Load Balancer영역은 Web Server와 Application Server를 연계하는 정보를 관리한다.

설정 정보의 상세 내용은 다음과 같다. (*) 는 필수값

1) Connector Info (/conf/extra/httpd-jk.conf와 /conf/extra/workers.properties 파일 관리)
항목설명비고
Type(*)Web Server와 Application Server가 통신할 때 사용하는 프로토콜ajp 13
Load-Balancing Factor(*)Application Server의 부하 분산 지수. 즉, 작업량 할당 비율(5로 설정할 경우 다른 worker보다 5배 더 많은 request를 받음)
Socket Timeout(*)JK와 application server 간에 응답 대기 시간(TCP socket 내부적인 상태에 대한 timeout을 의미)Default: 0(sec)
Socket Connect Timeout(*)JK와 application server 간의 socket 연결 대기시간Default: socket Timeout * 1000
Socket Keepalive(*)Web Server와 Application Server 간에 방화벽이 있는 경우 inactive 상태인 connection은 버리게 되어 있는데 OS에 keep alive 메시지를 보내서 방화벽이 inactive connection을 잘라버리는 것을 막을지 여부 설정
Connect Timeout(*)JK와 application server 간에 연결이 완료된 후, ajp13 프로토콜에서의 cping request에 대한 cpong respond 대기 시간
Connection Pool Size(*)JK와 application server 간에 커넥션을 cache하는 크기
Connection Pool Min size(*)JK와 application server 간에 커넥션을 cache하는 최소 크기
Connection Pool Timeout(*)Connection pool에서socket을 close 하기 까지 open된 socket을 유지하는 시간Application server에서 connectionTimeout설정과 같이 설정해야 함
Log Level(*)에러로그파일의 기록 내용을 얼마나 자세히 기록할지 지정
Log Format(*)로그파일에 어떤 포맷으로 로그를 남길지 설정
Status(*)서버 상태 모니터링 설정값 셋팅 여부
Enable 선택시 Status Url과 Allow IP를 설정할 수 있음
Status Url(*)서버 상태 모니터링 URLhttp://도메인/jk-status
Status Allow IP(*)서버 상태 모니터링 URL에 접근 가능한 IP
2) Load Balancer Info

(/conf/extra/workers.propertes, /conf/extra/uriworkermap/uriworkermap_{Virtual Host ID}.properties, /conf/extra/vhost/{Virtual Host ID}.conf 파일 관리)

항목설명비고
LB ID(*)Load Balancer명
Sticky SessionSession ID를 기반으로 라우팅을 지원할지 여부
Status Enabled서버 상태 모니터링 사용여부
동일 Virtual Host에 적용된 Load Balancer에 대해서는 일괄 적용됨
Virtual Host ID(*)Load Balancer를 적용할 Virtual Host IDVirtual Host 탭을 통해 관리됨
URI Patterns(*)Web server로 들어온 요청들에 대해 URI패턴을 검사하여 application server로 전달하는 uri mapping을 정의
Redirect해당 worker가 error 상태일 때 받은 요청을 대신 처리할 failover worker를 설정
LB Factor작업량 할당 비율. 해당 worker가 얼마나 많은 일을 할지 정의

URI Pattern 정보는 /conf/extra/uriworkermap/uriworkermap_{Virtual Host ID}.properties 파일에 관리된다. Application Server List의 + 버튼을 통해 Load Balancer와 연계되는 Application Server를 추가할 수 있으며, 추가된 Application Server의 ⓧ 버튼을 통해 해당 Application Server를 제외할 수 있다. 연계 Application Server 정보는 /conf/extra/workers.properties 파일에 관리된다.

3) Reverse Configuration

Web Server의 Reverse connection 기능을 사용하고자 할 경우에는 Manager가 설치된 {LENA_HOME}/conf/manager.conf 내 reverse 관련 설정을 아래와 같이 true로 한다.

web.reverse.enabled=true

그러면 Connector 탭 하위에 아래와 같이 Reverse Configuration 영역이 추가된다.

항목설명비고
Reverse EnabledReverse Connection 사용 여부
Reverse Server PortReverse Server 포트
Mapping Port Start원격지 WAS의 AJP 포트에 대응되는 Reverse AJP 포트의 최소값
Mapping Port End원격지 WAS의 AJP 포트에 대응되는 Reverse AJP 포트의 최대값
설정을 변경할 경우 수정된 사항의 반영을 위하여 서버의 재기동이 필요하다

Virtual Host

Web Server의 Virtual Host 정보를 등록/수정/삭제할 수 있다.

New/Delete 버튼을 통해 Virtual Host를 등록/삭제할 수 있다. 1개 이상의 Load Balancer를 적용한 Virtual Host는 삭제할 수 없다. 만약 해당 Virtual Host를 삭제하려면, 먼저 Connector 탭을 통해 Load Balancer의 Virtual Host ID를 다른 Virtual Host ID로 변경해야 한다.

SSL Enabled와 Rewrite Enabled를 체크한 경우 아래와 같이 상세 항목 영역이 추가로 출력된다.

설정 정보의 상세 내용은 다음과 같다. (/conf/extra/vhost/{Virtual Host ID}.conf, /conf/extra/rewrite/rewrite_{Virtual Host ID}.conf, /conf/extra/ssl/ssl_{Virtual Host ID}.conf 파일 관리) (*) 는 필수값

항목설명비고
LB ID(*)Load Balancer명
Port(*)해당 가상호스트가 사용하는 HTTP Port
DocumentRoot(*)해당 가상호스트의 홈페이지 디렉토리 위치
Server의 DocumentRoot변수인 ${DOC_ROOT}를 활용하여 동일하게 혹은, 그 하위로 지정가능
ServerName(*)해당 가상호스트의 도메인명
ServerAlias해당 가상호스트가 사용하는 ServerAlias
와일드카드 문자 포함 가능(*.example.com)
ErrorLog(*)해당 가상호스트의 웹 에러로그 파일 위치
CustomLog(*)해당 가상호스트의 웹 로그파일 위치
Directory/PathDocumentRoot에서 지정한 경로
Directory/Options지정한 디렉토리 이하의 모든 파일과 디렉토리들에 적용할 접근제어 설정
+Indexes는 상위 디렉토리 설정에 없는 Indexes설정을 추가
-FollowSymLinks는 상위 디렉토리 설정에 허가된 FollowSymLinks를 제거
Directory/AllowOverride설정한 디렉토리에 접근 시 어떤 방식으로 인증할 것인지 설정
Directory/Require인증된 사용자가 허가된 Action을 수행하는지 검증
SSL EnabledSSL 사용여부
SSLPort(*)HTTPS Port
SSLCertificateFile(*)SSL 인증서 경로
SSLCertificateKeyFile(*)SSL인증서 Key파일 경로
SSLCertificateChainFileFile of PEM-encoded Server CA Certificate (optional)
SSLCACertificateFileROOT인증서 경로(optional)
Rewirte EnabledRewrite사용여부
Rewirte ConfRewrite관련 상세 설정
지정한Rewrite Condition에 따라 Rewrite Rule에 설정한 rule대로 rewrite함
https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html 참고
  설정을 변경할 경우 수정된 사항의 반영을 위하여 서버의 재기동이 필요하다

Logging

Web Server의 로그설정 정보를 편집할 수 있다.

설정 정보의 상세 내용은 다음과 같다. (*) 는 필수값

1) Error Log

Web server가 진단정보와 request를 처리하는 도중에 발생한 오류를 기록할 때 사용된다. 서버가 시작하거나 동작하는데 문제가 발생시 여기에 설정된 위치의 파일을 먼저 확인한다.

항목설명비고
Location(*)Web server의 에러로그파일 위치를 지정
Log Level(*)에러로그파일의 기록내용을 얼마나 자세하게 기록할 지 지정
2) Log Format

로그파일에 사용할 형식을 설정한다.

항목설명비고
Format(*)로그파일에 어떤 포맷으로 로그를 남길지 설정
Nickname(*)CustomLog에서 사용할 로그포맷 명
3) Log Format with logio
항목설명비고
Format(*)로그파일에 어떤 포맷으로 로그를 남길지 설정
%I와 %O 변수를 사용해 request와 head를 포함하여 보내고 받는 byte 측정이 가능
Nickname(*)CustomLog에서 사용할 로그포맷 명
combinedio는 mod_logio_module이 로드되어 있어야 함
4) Custom Log

로그파일 이름과 형식을 설정한다. 환경변수를 사용하여 request의 특징에 따라 선택적으로 로그를 남길 수 있다.

항목설명비고
Location(File|Pipe)(*)File: 에러로그 파일 위치
Pipe: 파이프문자 | 뒤에 로그 정보를 표준 입력으로 받을 프로그램 경로
FormatNickname(*)로그파일에 기록할 내용
Log Format으로 정의한 nickname을 쓰거나 직접 로그 포맷을 작성
Env서버의 환경 변수 유무에 따라 로그를 기록할지 여부 작성(optional)

예) 영어권 사용자의 요청과 비영어권 사용자의 요청을 다른 로그파일에 기록하고 싶은 경우

Location Format Env logs/english_log common english logs/non_english_log common !english

5) Env

Request의 조건에 따라 환경변수를 설정할 때 사용한다.

항목설명비고
Attribute(*)HTTP 요청 헤더(ex: Host, User-Agent, Referer, Accept-Language), 요청 속성 중 하나(Remote_Host, Remote_Addr, Server_Addr, Request_Method, Request_Protocol, Request_RUI) 또는 요청과 연관된 환경 변수 이름
Regex(*)Perl 호환 정규식
Env-variable[=value]설정할 변수명과 설정값(optional)
Varname, !varname 또는 varname=value
설정을 변경할 경우 수정된 사항의 반영을 위하여 서버의 재기동이 필요하다

Config Tree

Web Server의 설치경로 하위의 /conf 폴더 하위 설정파일들을 파일편집기를 통해 관리 할 수 있다.

Node Agent를 실행하는 사용자가 Web Server 설정 정보 파일의 접근 권한이 있어야 수정이 가능하다. 접근 권한이 없을 경우 파일 Write 권한이 없어 편집 할 수 없다는 메시지가 출력 된다.

History

설정 정보의 백업 및 복원 기능을 제공한다. 설정 정보를 수정하여 저장하면 History를 관리한다. 수정 일시를 입력하여 검색한다. 버튼을 클릭하여 선택한 파일의 정보를 볼 수 있으며, 버튼을 클릭하여 해당 설정파일로 복원할 수 있다.

<파일 History의 상세 정보>