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 클래스 이름
->Exucutor는 Tomcat의 구성 요소 간에 공유할 수 있는 스레드 풀을 나타내며 커넥터당 스레드 풀이 만들어졌지만 이 작업을 사용하면 커넥터와 다른 구성 요소 간에 스레드 풀을 공유 할 수 있다.
속성 | 설명 |
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 Realm은 Tomcat인스턴스에 대해 구성된 글로벌 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 또는.wa의 Directory 또는 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 |