WEB/WAS 구성 체크리스트

프로젝트 때 WEB/WAS 구성하였던 경험을 바탕으로 작성한 체크리스트. 디테일한 기억은 나지 않고 설정별로 어떠한 기능인지도 다 기억나지는 않지만 항목별로 주요 포인트를 체크리스트로 뽑아봄.

Tomcat 설치 및 구성 체크리스트

디렉토리 지정

설치버전 확인

로그 설정

<!-- example -->
<Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="/logs/was/tomcat/%{server_name}/accesslog"
    prefix="%{server-name}_access_log" suffix=".log"
    pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i"
    fileDateFormat="yyyy-MM-dd-HH" resolveHosts="false" />

설정 표준

<!-- example -->
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
    maxThreads="300" minSpareThreads="100"/>

<Connector executor="tomcatThreadPool"
    port="8080" protocol="HTTP/1.1"
    enableLookups="false" server="server"
    maxPostSize="-1" maxKeepAliveRequests="1000"
    connectionTimeout="20000" maxParameterCount="100"
    acceptCount="1500" redirectPort="8443" />
<Connector executor="tomcatThreadPool"
    port="8009" protocol="AJP/1.3"
    enableLookups="false" server="server"
    maxPostSize="-1" connectionTimeout="20000"
    maxParameterCount="100" redirectPort="8443"/>

<Host name="localhost"  appBase="/app/was/svc"
    unpackWARs="true" autoDeploy="false">

<!-- tomcat 1번 인스턴스 -->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">
<!-- tomcat 2번 인스턴스 -->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">
<!-- example -->
<Resource name="jdbc/mysql"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="com.mysql.jdbc.Driver"
        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory를 감싸놓은 암호화 팩토리 모듈"
        url="jdbc:mysql://127.0.0.1:3316/testDB"
        maxTotal="100"
        minIdle="10"
        maxIdle="20"
        maxWaitMillis="20000"
        validationQuery="SELECT 1"
        testOnBorrow="true"
        validationQueryTimeout="30"
        defaultAutoCommit="false"
        username="암호화된 값"
        password="암호화된 값"
        initialSize="10"
        poolPreparedStatements="true"
        maxOpenPreparedStatements="50"
        removeAbandoned="true"
        removeAbandonedTimeout="60"
        logAbandoned="true"
        ... />

보안

<security-constraint>
    <display-name>Protected Context</display-name>
    <web-resource-collection>
        <web-resource-name>Protected Context</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>PUT</http-method>
        <http-method>DELETE</http-method>
        <http-method>TRACE</http-method>
        <http-method>OPTIONS</http-method>
    </web-resource-collection>
    <auth-constraint />
</security-constraint>
...
<servlet>
    ...
    <init-param>
        <param-name>readonly</param-name>
        <param-value>true</param-value>
    </init-param>
    ...
    <init-param>
        <param-name>keepgenrated</param-name>
        <param-value>false</param-value>
    </init-param>
    ...    
</servlet>

Apache 설치 및 구성 체크리스트

디렉토리 지정

설치버전 확인

로그 설정

설정 표준

보안