기타

tomcat -> server.xml 기본 구성요소

더the덕 2022. 2. 21. 10:00

Server.xml 기본 구성요소

Server -> 전체 카탈리나 servlet 컨테이너를 나타내며 구성 파일에서 가장 바깥쪽 단일 속성

className -> 사용할 구현의 java클래스 이름 / 클래스 이름을 지정하지 않으면 표준 구현이 사용된다(org.apache.catalina.Server)

address -> 종료 명령을 기다리는 TCP/IP주소 (주소를 지정하지 않으면 localhost로 사용됨)

port ->이 서버가 종료명령을 기다리는 TCP/IP포트 번호 / 종료 포트를 비활성화하는 것은 -1

shutdown -> Tomcat을 종료하라면 지정된 포트 번호에 대한 TCP.IP 연결을 통해 수신 해야 하는 명령문자열

속성 설명
classname 사용할 구현의 java클래스 이름 / 클래스 이름을 지정하지 않으면 표준 구현이 사용된다(org.apache.catalina.Server)
address 종료 명령을 기다리는 TCP/IP주소 (주소를 지정하지 않으면 localhost로 사용됨)
port 종료명령을 기다리는 TCP/IP포트 번호 / 종료 포트를 비활성화하는 것은 -1
shutdown Tomcat을 종료하라면 지정된 포트 번호에 대한 TCP.IP 연결을 통해 수신 해야 하는 명령문자열

 

Listenr ->특정 이벤트가 발생할 때 작업을 수행하는 구성요소를 정의하며

 

 

Classname 사용할 구현의 java 클래스 이름이며 이 클래스는 인터페이스를 구현

GlobalNaming Resources -> 서버용 글로벌 JNDI리소소를 정의한다.

 

속성 설명
name context를 기준으로 만들 리소스의 이름
auth 웹 응용프로그램 코드가 프로그래밍 방식으로 해당 리소스 관리자에 서명할지 또는 컨테이너가 응용 프로그램을 대신하여 리소스 관리자에게 로그온 할지 여부를 지정
type 리소스에 대한 조회를 수행할 때 웹 응용 프로그램에서 예상되는 정규화된 java 클래스 이름
description 리소스에 대한 설명
factory JNDI 개체 공장의 클래스 이름

name - > 표준 카탈리나 구성 요소를 사용하는 경우 로그 메시지에 포함되며 특정 서버와 연결된 각 서비스의 이름은 고유 해야 한다.

className 사용할 구현의 Java 클래스 이름

->ExucutorTomcat의 구성 요소 간에 공유할 수 있는 스레드 풀을 나타내며 커넥터당 스레드 풀이 만들어졌지만 이 작업을 사용하면 커넥터와 다른 구성 요소 간에 스레드 풀을 공유 할 수 있다.

속성 설명
name 서버의 다른 위치에서 이 풀을 참조 하는데 사용되는 이름.xml 필요하며 고유하여야 한다.
namePrefix 실행자가 만든 각 스레드의 이름 접두사이며 개별 스레드
스레드 이름은 namePrefix+threadNumber로 구성됨.
maxThreads 이 풀의 최대 활성 스레드 수 (기본값은 200)
minSpareThreads 항상 살아 있게 유지되는 최소 스레드 수(기본 값 25)

 

->Connector

프로토콜을 지원하는 커넥터 구성요소를 나타내며 이를 통해 카탈리나는 servlet JSP페이지를 실행하는 기능 외에도 독립 실행 형 웹 서버로 기능할 수 있다. 이 구성 요소의 특정 인스턴스는 서버의 특정 TCP 포트 번호에 대한 연결을 수신 대기 하고 있으며 하나 이상의 커넥터는 단일 서비스의 일부로 구성할 수 있으며 각 커넥터는 요청 처리를 수행하고 응답을 만들기 위해 연결된 엔진으로 전달한다.

속성 설명
port 커넥터가 서버 소켓을 만들고 들어오는 연결을 기다리는 TCP 포트 번호
protocol 들어 오는 트래픽을 처리하도록 프로토콜을 설정(http/1,1 / Http/2 , AJP..)
connectionTimeOut 연결을 수락한 후 요청 uri 줄을 제시할 때 까지 기다리는 설정
redirectPort SSL이 아닌 요청을 지원하고 일치하는 경우 SSL 전송이 필요한 요청이 수신되는 카탈리나 요청을 여기에 지정된 포트 번호로 자동 리 다이렉션 설정을 할 수 있다.
maxThreads 최대 동시 요청 처리 스레드를 처리 할 수 있는 최대 값
SSLEnabled ssl 트래픽을 사용 할 수 있도록 설정

 

SSLHostConfig -> 커넥터에서 해당 특성을 설정하면 해당 커넥터에 대한 특정 인스턴스 SSL 지원을 활성화 할 수 있다.

속성 설명
CertificateFile 서버 인증서가 포함된 파일의 이름이며 형식은 PEM 인코딩 방식
CertificateKeyFile 서버 캐인 키가 포함된 파일의 이름
기본 값은 인증서 파일 값이며 인증서와 개인 키가 모두 이 파일에 있어야 한다.(PEM)
CertificateChainFile 사용된 서버 인증서와 연결된 인증서 체인이 포함된 파일의 이름
(PEM)
CertificateKeystoreFile 로드할 서버 인증서와 키를 저장한 키 스토어 파일의 경로이름경로이름(JSSE)
type 인증서 유형이며 인증서와 호환되는 암호를 식별하는데 사용된다.

Engine -> 특정 카탈리나 서비스와 연결된 전체 요청 처리를 말하며 하나 이상의 커넥터에서 모든 요청을 수신 및 처리하고 완료된 응답을 커넥터에 반환하여 클라이언트로 다시 전송을 한다.

속성 설명
classname 사용할 구현의 java 클래스 이름
name 로그 및 오류 메시지에 사용되는 이 엔진의 논리적 이름
동일한 서버에서 여러 서비스요소를 사용하는 경우 각 엔진에 고유한 이름이 필요하다.
defaultHost 이 서버의 호스트 이름으로 향하는 요청을 처리하는 호스트를 식별하며 구성 파일에는 구성되지 않은 기본 호스트 이름
jvmRoute 세선 선호도를 활성화 하기 위해 로드 밸런싱 시나리오에서 사용해야 하는 식별자

 

Realm -> 해당 사용자에게 할당된 사용자 이름, 암호 및 역할의 데이터베이스를 나타내며 다양한 구현을 통해 카탈리나는 이러한 인증 정보가 이미 생성되고 유지 관리되는 환경에 통합된 다음 해당 정보를 활용하여 Servlet 사양에 설명된 컨테이너 관리보안을 구현 할 수 있다.

-org.apache.catalina.realm,UserDatabaseRealm

->UserDatabase RealmTomcat인스턴스에 대해 구성된 글로벌 JNDI 리소스를 제공되는 UserDatabase 리소소를 기반으로 하는 Realm 구현

àrecourceName (이 영역이 사용자, 암호 및 역할 정보에 사용할 전역 리소스의 이름)

 

-org.apache.catalina.realm.LockOutRealm

->특정 기간에 너무 많은 실패한 인증 시도가 있는 경우 사용자가 잠금 메커니즘을 제공하기 위해 잠금 기능을 제공하기 위해 CombinedRealm을 확장하는 Tomcat인터페이스의 구현

Host - > Tomcat가 실행중인 특정 서버와 서버의 네트워크 이름의 연결인 가상 호스트를 나타내며 클라이언트가 네트워크 이름을 사용하여 Tomcat 서버에 연결 할 수 있도록 하려면 이 이름은 속한 인터넷 도메인을 관리하는 DNS서버에 등록해야 한다.

 

대부분의 경우 System관리자는 두 개 이상의 네트워크를 동일한 가상 호스트 및 응용프로그램과 연결하려고 하는데 이 작업은 호스트기능을 사용하여 수행 할 수 있다.

 

각 엔진과 연결된 호스트 중 하나에는 해당 엔진의 속성과 일치하는 이름이 있어야 한다. 클라이언트는 일반적으로 호스트 이름을 사용하여 연결하려는 서버를 식별하며 이 호스트 이름은 HTTP요청 헤더에도 포함이 되어있다.

속성 설명
appBase 가상 호스트의 응용프로그램 기본 Directory 이며 절대 경로 이름 또는 Directory를 기준으로 하는 경로 이름을 지정한다.
기본 값 $CATALINA_BASE/webapps
name 일반적으로 도메인 이름 (DNS)서비스 서버에 등록된 가상 호스트의 네트워크 이름
autoDeploy 자동으로 응용프로그램.war배포를 설정
xmlBase 가상 호스트의 xml 베이스 Directory.
배포할 context XML 설명자가 포함 될 수 있는 Directory의 경로 기본 값 $CATALINA_BASE/conf/<engine)name>/<host_name>
unpackWARS war파일로 Directory에 배치된 웹 응용프로그램을 해당 디스크 Directory 구조로 압축 해제하여 WAR 파일에서 직접 웹 응용 프로그램을 실행하도록 설정 하게해줌

CONTEXT$CATALINA_BASE를 사용하여 상대 경로가 해결되는 기본 Directory를 참조하며

특정 가상 호스트 내에서 실행되는 웹 응용프로그램을 나타낸다.

각 웹 응용프로그램은 웹 응용 프로그램(.war)파일 또는 Servlet에 설명된 대로 해당 압축되지 않은 내용을 포함하는 해당 Directory 기반으로 한다.

HTTP 요청을 처리하는 데 사용되는 웹 응용프로그램은 정의된 각 context 경로에 대해 요청 urI의 가장 긴 접두사를 일치시키는 것을 기반으로 카탈리나에서 선택이 되며 배포에서 정의된 servlet매핑에 따라 들어오는 요청을 처리하는 servlet을 선택한다.

속성 설명
docBase 문서 베이스 Directory 또는.waDirectory 또는 war에 대한 절대 경로 이름 또는 소유 호스트의 Directory를 기준으로 하는 경로 이름을 설정
path 각 요청 URI의 시작과 일치하여 처리를 위한 적절한 웹 응용프로그램을 선택한다. 특정 호스트 내의 모든 context경로는 고유 해야 한다. 빈 문자열(“”)context경로를 지정하는 경우 호스트의 기본 웹 응용프로그램을 정의하며 다른 context에 할당되지 않은 모든 요청을 처리한다.
reloadable 변경 내용의 클래스를 모니터링을 하고 변경 사항이 감지되면 웹 응용프로그램을 자동으로 다시 로드 하도록 설 정하게 해줌
*
개발 중엔 유용하지만 상당한 런타임 오버헤드가 필요하여 배포된 프로덕션 프로그램에선 사용하지 않음.
unpackWARS war파일로 Directory에 배치된 웹 응용프로그램을 해당 디스크 Directory 구조로 압축 해제 하여 실행하도록 설정 하게해줌
   

Valve ->

"org.apache.catalina.valves.AccessLogValve"

-> 웹 서버에서 만드는 동일한 형식으로 로그파일을 만들며 표준 로그 분석 도구에서 분석하여 페이지 히트 수, 사용자 세션 활동 등을 추적 할 수 있다.

속성 설명
directory 로그 파일이 배치되는 Directory의 절대 또는 상대적 경로 이름
prefix 접두사는 각 로그파일 이름의 시작 부분에 추가 된다.
기본 값은 “access_log”
suffix 각 로그 파일 끝에 추가되는 접미사
pattern 기록할 요청 및 응답 또는 단어 나 표준 형식을 선택하여 다양한 정보 필드를 식별하는 서식 레이아웃

 

"org.apache.catalina.authenticator.SingleSignOn"

-> 사용자가 가상 호스트와 연결된 웹 응용 프로그램 중 하나에 로그인한 다음 동일한 가상 호스트의 다른 모든 웹 응용 프로그램에서 신원을 인식할 수 있는 기능을 제공

'기타' 카테고리의 다른 글

Windows 기본 보안설정  (0) 2022.02.24
20201 OWASP TOP 10 문제점 및 예방 방법  (0) 2022.02.21
Nginx.conf 간결정리  (0) 2022.02.21
파일 디스크립터  (0) 2022.02.21
Centos7 su vs sudo  (0) 2022.02.21