자바 System Property를 이용한 Tomcat (톰캣) 포트 동적 설정

자바 System Property를 이용한 Tomcat (톰캣) 포트 동적 설정

2018, Jun 13    

1. 개요

Multi Instance 구성이나, 자동 배포 등을 할 때 걸림돌이 되는 것이 포트 구성인데, Java System Property를 이용하여 server.xml 수정없이 포트 구성을 할 수 있는 방법을 고민하였습니다. 물론 최초에 template이 되는 server.xml은 한 번 만들어야 합니다.

2. 설정

원래 server.xml에는 다음과 같이 총 4개의 포트 구성이 있습니다.

<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1" ...
<Connector port="8009" protocol="AJP/1.3" ...
... redirectPort="8443" />

다음과 같이 수정합니다.
  • 8005 -> ${port.shutdown}
  • 8080 -> ${port.http}
  • 8009 -> ${port.ajp}
  • 8443 -> ${port.https}

즉, 이렇게 되겠죠.

<Server port="${port.shutdown}" shutdown="SHUTDOWN">
<Connector port="${port.http}" protocol="HTTP/1.1" ...
<Connector port="${port.ajp}" protocol="AJP/1.3" ...
... redirectPort="${port.https}" />

그리고 적절한 기동 스크립트에 다음과 같이 System Property를 적용합니다.

JAVA_OPTS=" ${JAVA_OPTS} -Dport.http=${INST_PORT}"
JAVA_OPTS=" ${JAVA_OPTS} -Dport.https=`expr ${INST_PORT} + 363`"
JAVA_OPTS=" ${JAVA_OPTS} -Dport.ajp=`expr ${INST_PORT} - 71`"
JAVA_OPTS=" ${JAVA_OPTS} -Dport.shutdown=`expr ${INST_PORT} - 75`" 

출처

  • https://sarc.io/index.php/tomcat/211-system-property-tomcat