LabHub

Tomcat & nginx 운영 · Tomcat 구조와 server.xml · 실습

server.xml 손보기 — 커넥터·보안·액세스로그

LabHub 에서 이어서 보기

목표

server.xml 의 계층 구조를 이해하고 커넥터 추가, 종료 포트 보안 조치,
액세스 로그 포맷 변경, 외부 docBase 컨텍스트, 응답 압축을 직접 설정할 수 있게 됩니다.

왜 중요한가

server.xml 은 SI 현장에서 가장 자주 열리는 설정 파일입니다. 그런데 대부분
"어디선가 받은 파일을 복사해서 포트만 바꾸는" 방식으로 다뤄집니다.
그 결과 종료 포트가 기본값인 채로 운영에 나가고(보안 점검 지적 1순위),
액세스 로그에 응답시간이 없어서 "느리다"는 신고에 근거를 대지 못합니다.
이 실습은 각 속성이 무엇을 바꾸는지 직접 확인하면서 익힙니다.

단계

1. Tomcat 을 기동하고, /opt/tomcat/conf/server.xml
/opt/tomcat/conf/server.xml.orig 로 백업합니다.
2. server.xml포트 8081 HTTP 커넥터를 추가하고 재기동합니다.
http://127.0.0.1:8081/ 이 200 이어야 합니다.
3. Server 엘리먼트의 shutdown 속성값을 기본값(SHUTDOWN)이 아닌
8자 이상의 다른 문자열로 바꿉니다.
4. Host 안의 AccessLogValvepattern밀리초 단위 처리시간 지정자
추가하고 재기동한 뒤, 요청을 한 번 보내
/opt/tomcat/logs/localhost_access_log.*.txt 에 로그가 남게 합니다.
5. /opt/tomcat/conf/Catalina/localhost/api.xml 을 만들어
docBase/opt/lab/fixtures/tomcat/api 로 지정합니다. 재기동 후
http://127.0.0.1:8080/api/index.html 이 200 이어야 합니다.
6. 8080 커넥터에 압축을 켜고 재기동합니다.
curl -H 'Accept-Encoding: gzip' -I http://127.0.0.1:8080/api/big.html
응답 헤더에 Content-Encoding: gzip 이 있어야 합니다.
7. /root/tc/validate.sh 를 만듭니다. 인자 하나(XML 파일 경로)를 받아
XML 이 정상이면 종료코드 0, 깨졌거나 파일이 없으면 0 이 아닌 값으로 종료합니다.
8. /root/tc/serverxml.csv 를 만듭니다. 첫 줄은 element,attribute,value,why.
2~6 단계에서 바꾼 설정 5건을 각각 한 행씩 적습니다.
why 는 15자 이상이어야 합니다.

참고

단계 8개

  1. 원본 백업
  2. 추가 커넥터 생성
  3. 종료 명령어 변경
  4. 액세스 로그에 응답시간 추가
  5. webapps 밖 디렉터리 서비스
  6. 커넥터 압축 설정
  7. 설정 검증 스크립트
  8. 변경 내역 문서화