Tomcat 가상 호스트(Virtual Host) 구축 방법
서버에 tomcat이 설치되어 있을 경우 Java/JSP를 이용한 웹서비스를 개발할 때도 apache의 경우와 같이 하나의 서버에 여러개의 도메인으로 접속시 각각의 해당 웹 서비스가 실행되도록 가상 호스트를 만들수 있다.
Ubutnu 16.04, Tomcat 8.0의 상황에서 다음 경로에 있는 server.xml을 가상 호스트 환경으로 변경해 준다.
vi /etc/tomcat8/server.xml
위의 파일을 열어 보면 다음과 같은 내용이 있을 것이다.
128 <Host name="localhost" appBase="webapps"
129 unpackWARs="true" autoDeploy="true">
130
131 <!-- SingleSignOn valve, share authentication between web applications
132 Documentation at: /docs/config/valve.html -->
133 <!--
134 <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
135 -->
136
137 <!-- Access log processes all example.
138 Documentation at: /docs/config/valve.html
139 Note: The pattern used is equivalent to using pattern="common" -->
140 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
141 prefix="localhost_access_log" suffix=".txt"
142 pattern="%h %l %u %t "%r" %s %b" />
143 </Host>
이 상황에서 2개의 도메인에 대한 가상 호스트를 만들기로 해 본다.
joekog.iptime.org
fullstack.iptime.org
이상의 2개의 도메인으로 동일 서버(Ubuntu 16.04, Tomcat 8이 설치된 서버)로 접속해 돌 때
joekog.iptime.org ⇒ /home/joekog/www의 웹 서비스가 실행되고
fullstack.iptime.org ⇒ /home/fullstack/www의 웹 서비스가 실행되도록 Tomcat virtual host(톰캣 가상호스트)를 설정해 보고자 한다.
위에서 열었던 server.xml의 위의 <Host name... 아랫쪽에 아래와 같이 도메인 관련정보를 추가해 준다.
145 <Host name="joekog.iptime.org" appBase="/home/joekog/www"
146 unpackWARs="true" autoDeploy="true">
147
148 <!-- SingleSignOn valve, share authentication between web applications
149 Documentation at: /docs/config/valve.html -->
150 <!--
151 <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
152 -->
153
154 <!-- Access log processes all example.
155 Documentation at: /docs/config/valve.html
156 Note: The pattern used is equivalent to using pattern="common" -->
157 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
158 prefix="joekog.iptime.org_access_log" suffix=".txt"
159 pattern="%h %l %u %t "%r" %s %b" />
160 </Host>
161
162 <Host name="fullstack.iptime.org" appBase="/home/fullstack/www"
163 unpackWARs="true" autoDeploy="true">
164
165 <!-- SingleSignOn valve, share authentication between web applications
166 Documentation at: /docs/config/valve.html -->
167 <!--
168 <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
169 -->
170
171 <!-- Access log processes all example.
172 Documentation at: /docs/config/valve.html
173 Note: The pattern used is equivalent to using pattern="common" -->
174 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
175 prefix="fullstack.iptime.org_access_log" suffix=".txt"
176 pattern="%h %l %u %t "%r" %s %b" />
177 </Host>
위 파일을 저장한 후 tomcat을 재시작한다.
# service tomcat8 restart
이제 각각의 경로에 해당하는 웹 서비스를 구현하면 된다.
joekog.iptime.org를 위해 joekog에 대한 사용자를 아래와 같이 추가해 준다.
# adduser joekog
위의 사용자를 추가하고 나면 /home/joekog라는 디렉토리가 생성되었을 것이다. 이후 아래 디렉토리 경로를 생성해 준다.
/home/joekog/www/ROOT/
이때 주의할 것은 server.xml에 appBase="/home/joekog/www"와 같이 설정되어 있지만 기본적으로 tomcat은 이 경로 아래의 ROOT를 웹의 루트 디렉토리로 인식하기 때문에 index.jsp와 같은 파일을 /home/joekog/www/index.jsp와 같이 위치시키면 파일을 찾을수 없다는 에러를 발생시킨다. 반드시 ROOT 디렉토리를 생성 후 /home/joekog/www/ROOT/index.jsp와 같이 웹 서비스 실행 파일을 위치시켜야 한다.
이제 웹 브라우저에서 http://joekog.iptime.org:8080/index.jsp로 접속하면 정상적으로 실행이 된다.
fullstack.iptime.org에 대한 것도 동일한 방법으로 테스트해 볼수 있다.
사용자 추가, IpTIME에서의 DDNS 설정 및 apache에 대한 가상 호스트 구축 방법은 아래 링크를 참조한다.
아파치 가상 호스트(Virtual host)를 이용한 하나의 서버에 여러개의 웹 서비스 구현하기
'Linux' 카테고리의 다른 글
동일한 서버에서 Apache - Tomcat 연동하기 (3) | 2018.05.30 |
---|---|
Ubuntu 16.04에서 SFTP 접속 포트 변경하기 (0) | 2018.05.18 |
Ubuntu 16.04에서 vsftpd를 이용하여 FTP 접속 포트 변경하기 (0) | 2018.05.18 |
아파치 가상 호스트(Virtual host)를 이용한 하나의 서버에 여러개의 웹 서비스 구현하기 (0) | 2018.05.17 |
심볼릭 링크로 심볼릭 파일 생성시 "그런 파일이나 디렉토리가 없습니다"(Nu such file or directory) 에러 발생시 (0) | 2018.05.14 |