리눅스 WEB WAS는 어떻게 동작할까?

1. WEB WAS의 동작과정

  1. 클라이언트 요청 수신
    웹 서버는 클라이언트로부터 HTTP 요청을 받습니다. 이 요청은 주로 웹 브라우저를 통해 발생합니다.

  2. 요청 분석
    웹 서버는 받은 요청을 분석하여 요청된 자원 및 요청 방식(CRUD)를 확인합니다.

  3. 정적 자원 처리
    요청된 자원이 정적인 경우(이미지 파일) 웹 서버 자체적으로 자원을 찾아냅니다.

  4. 동적 자원 처리
    요청된 자원이 동적인 경우(Servlet) 에는 웹 서버가 WAS로 해당 요청을 전달합니다.

  5. WAS로 요청 전달
    웹 서버는 동적 자원에 대한 요청을 WAS로 전달합니다. 이때 일반적으로 HTTP, HTTPS 등을 통해 통신합니다.

  6. 요청 처리
    WAS는 받은 요청을 처리하고, DB(Mybatis, JPA 등)다른 서비스와의 통신을 통해 요청에 대한 응답을 생성합니다.

  7. 응답 전송
    WAS는 처리한 결과를 다시 웹 서버로 전송합니다.

  8. 클라이언트 응답
    웹 서버는 받은 응답을 클라이언트에게 전달하여 사용자에게 보여줍니다.

요약

전체적으로 보면 웹서버(Apache)에서 보통 정적 파일 요청을 담당하고 리버스 프록시를 통해 동적자원을 처리하는 WAS로 로드밸런싱 처리를 진행하고 Database, Transaction 등 여러 서비스와의 통신을 담당한 후 다시 웹서버로 자원을 전송하여 웹서버는 응답값을 클라이언트에 전송하는 과정을 가지게 됩니다.

2. WAS의 설정파일은 무엇이 있을까?

  1. server.xml:
    톰캣의 주요 설정 파일 중 하나로, 톰캣 서버의 설정을 담당합니다. 일반적으로 <톰캣 설치 디렉토리>/conf/server.xml 경로에 위치합니다. 이 파일에서는 포트, 가상 호스트, SSL 설정 등을 관리할 수 있습니다. 주의해야 할 점은, 이 파일을 수정할 때 톰캣을 다시 시작해야 변경 사항이 적용됩니다.

  2. web.xml:
    웹 애플리케이션의 설정 파일로, 각 웹 애플리케이션마다 별도로 존재합니다. 일반적으로 각 웹 애플리케이션의 WEB-INF/web.xml 경로에 위치합니다. 이 파일에서는 서블릿 매핑, 필터 설정, 에러 페이지 등과 같은 웹 애플리케이션의 세부적인 설정을 관리할 수 있습니다.

  3. context.xml:
    톰캣 컨텍스트의 설정 파일로, 각 웹 애플리케이션마다 별도로 존재합니다. 일반적으로 각 웹 애플리케이션의 META-INF/context.xml 경로에 위치합니다. 이 파일에서는 데이터베이스 연결 설정, 리소스 설정 등과 같은 컨텍스트 수준의 설정을 관리할 수 있습니다.

  4. setenv.sh:
    이 파일은 톰캣 실행 환경 변수를 설정하는 데 사용됩니다. 주로 메모리 설정 (예: JVM 메모리 크기), 시스템 속성, 환경 변수 등을 설정할 때 사용됩니다. 이 파일은 <톰캣 설치 디렉토리>/bin/ 경로에 있으며, 필요에 따라 생성하고 수정할 수 있습니다.

주로 WAS(Tomcat)에서 설정 파일들의 특성을 알아보았습니다. 이것들은 실무에서 반드시 알아야할 필수불가결한 중요한 요소라고 생각이 됩니다. 운영시 인프라 이러한 WAS 설정파일에 대한 이해는 여러 장애상황에서 빠른 대응이 가능할 것으로 보여집니다.