톰캣의 설정파일은 우분투 서버를 기준으로 conf 디렉토리에 위치해있다.
내 경우에는 경로가 /var/lib/tomcat9/conf 였다.
이 conf 디렉토리에 server.xml 파일이 있는데
이 파일을 수정하여 여러 개의 서비스를 하나의 톰캣에서 구동할 수 있다.
<Service name="fileserver">
<Connector URIEncoding="UTF-8" port="80" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
<Context docBase="/var/lib/tomcat9/webapps/fileserver" path="/" reloadable="true"/>
</Host>
</Engine>
</Service>
1. 같은 포트 - 다른 도메인으로 구동
<Service name="fileserver">
<Connector URIEncoding="UTF-8" port="80" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="fileserver.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
<Context docBase="/var/lib/tomcat9/webapps/fileserver"
path="/fileserver" reloadable="true"/>
</Host>
<Host name="board.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
<Context docBase="/var/lib/tomcat9/webapps/board" path="/board" reloadable="true"/>
</Host>
</Engine>
</Service>
같은 포트로 두 개 이상의 서비스를 구동하기 위해서는
서비스별로 Host 태그를 작성해주면 된다.
2. 다른 포트 - 다른 서비스 구동
<Service name="fileserver">
<Connector URIEncoding="UTF-8" port="80" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
<Context docBase="/var/lib/tomcat9/webapps/fileserver" path="/" reloadable="true"/>
</Host>
</Engine>
</Service>
<Service name="board">
<Connector URIEncoding="UTF-8" port="81" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
<Context docBase="/var/lib/tomcat9/webapps/board" path="/" reloadable="true"/>
</Host>
</Engine>
</Service>
포트별로 서비스를 다르게 하고자 한다면 Service 태그를 추가로 작성하면 된다.
여기서 중요한 점은 다른 포트별로 서비스가 달라야하므로
Connector 태그의 port 속성의 포트번호를 다르게 설정해주어야한다는 점이다.
'웹 개발 > 웹 개발' 카테고리의 다른 글
input 태그 file 타입에 선택된 파일 삭제하기 (0) | 2022.12.31 |
---|---|
checkbox에서 여러 개의 값 가져오기 (0) | 2022.12.30 |
Input 태그 file 타입의 선택된 파일 정보 가져오기 (0) | 2022.12.29 |
서블릿 업로드 파일 저장하기 (0) | 2022.12.28 |
SHA-256 암호화 하기 (0) | 2022.12.24 |