본문 바로가기

WAS - Tomcat 계열/각종 설정

[Tomcat,JWS] 불필요 port 및 log 비활성화 하기

#. 참고 글

(shutdown port 관련 블로그 글)

https://m.blog.naver.com/websearch/221815004532

https://blog.naver.com/websearch/221814981282

https://stackoverflow.com/questions/45467464/what-would-happen-if-we-change-the-shutdown-port-of-tomcat-to-1

 


 

#. 불필요 port

shutdown port를 사용하지 않도록 하여 보안을 강화할 수 있다.

server.xml 파일에서 아래와 같이 포트 번호를 -1로 하면 비활성화된다.

<Server port="-1" shutdown="SHUTDOWN">

 

아래 내용은 OS 별로 shutdown port를 사용하지 않고 tomcat 프로세스를 정지하는 방법이다.

 


 

#. Windows 환경

윈도우 환경에서는 CMD 창을 종료하거나, 윈도우 서비스 종료로 shutdown 하면 된다.

다만, 윈도우 서비스에 Tomcat을 등록하지 않은 환경에서

Jenkins 등으로 tomcat 기동/정지가 필요한 경우에는 shutdown port를 사용하는 수 밖에 없다.

 


 

#. Linux/Unix 환경

각각의 tomcat 프로세스 별로 CATALINA_BASE 값은 서로 unique한 값을 가진다.

해당 값으로 tomcat 프로세스를 grep 하고, 검색한 프로세스의 PID를 kill -9 하는 스크립트를 사용하면 된다.

##### server stop #####

#server properties
CATALINA_BASE=/app/tomcat/apache-tomcat-9.0.98/servers/server1

# Find the process ID (PID) of Tomcat
PID=$(ps -ef | grep java | grep "$CATALINA_BASE" | awk '{print $2}')

if [ -n "$PID" ]; then
    echo "Stopping Tomcat (PID: $PID)..."
    kill -9 "$PID"
    echo "Tomcat stopped."
else
    echo "Tomcat is not running."
fi

 


 

#. 불필요 log

catalina.properties 파일을 수정한다.

manager.log 와 host-manager.log는 필요 없으므로 주석처리 해도 괜찮음.

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

#3manager.org.apache.juli.AsyncFileHandler.level = FINE
#3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
#3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
#3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

#4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
#4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
#4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
#4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

 

manager.log 와 host-manager.log는

최초 설치 시 webapps 하위에 있는 manager 및 host-manager 사용 시 기록되는 로그인데,

애초에 저 둘은 보안 상 사용하지 않으므로 필요가 없다.

 

아래 두 로그는 필요하므로 주석처리 하지 말자.

catalina.log : 톰캣 내부적으로 발생하는 이벤트에 대한 로그 기록

localhost.log : 톰캣을 종료할 때와, 톰캣 시작시 로그를 기록