tomcat이 하는 일? = Servlet Container

Java Servlet 이란

  • 자바에는 요청을 받아서 처리하는 일을 담당하는, servlet이라는 actor가 있음.
  • 요청을 받으면 서블릿은 자기가 알아서 실행되는게 아니라 서블릿을 실행하는 주체가 따로 있다.
  • 이게 바로 서블릿 컨테이너. 즉, 요청을 받으면 서블릿을 해당 요청을 파라미터로 실행해주는게 서블릿 컨테이너이고,
  • tomcat이 바로 서블릿 컨테이너다.

 

tomcat log

  • tomcat 로그에 찍히는 log는 여러 스레드가 동시에 기록하기 때문에, 한 세션의 요청이 연속해서 바로 뒤이은 로그에 찍혀있지 않을 수 있다. 
  • 그래서 로그를 추적하기 위해 exec-* 번호를 같이 기록해 주는데, 이는 스레드 번호를 의미한다. 
  • 로그는 이 exec-* 번호를 따라가면서 보면 된다.

 

tomcat의 async 비동기 지원

 

tomcat 설정

server.xml
  • Realm은 웹 애플리케이션에서 정당한 사용자인지 식별하고, 아울러 각 사용자에 맞는 roles을 지정하는 사용자와 비밀번호의 "database" 다. 라고 얘기하고 있는데, 여기서 말하는 사용자란 tomcat manager 로그인 할 때 쓰는 사용자를 말한다
  • UserDatabaseRealmn이면 `` $CATALINA_BASE/conf/tomcat-users.xml``에 명시된 사용자를 불러온다거나, 뭐 그런 기능이다.

 

tomcat manager, examples 등 기본 페이지 비활성화

  • 물론 이런 url은 따로 설정하지 않으면 단순 페이지 접속만 가능할 뿐 공격 벡터가 되지는 않는데.. 어쨌든 불필요한 페이지가 유저한테 노출될 수 있으니 삭제
  • `` tomcat/webapps`` 하위 폴더를 날려주면 된다.