[컴][자바] Tomcat 에서 여러개의 Host 사용하기

톰캣 설정 / 여러 도메인을 한 개의 서버로



여러개의 Host

한개의 tomcat 에서 여러개의 host(domain)을 사용해 보자.

이를 tomcat 에서 Host 로 분류하고 있다. tomcat 의 구조는 여기를 보면 되는데, 기본적으로 request 를 받고, 처리하는 부분은 똑같이 사용하고, 들어온 packet 을 domain 을 보고 나눠 주는 것이다.

이것은 tomcat 에서 한 host 에서 application 을 여러개 띄우는 것이랑 기본적으로 비슷하다. 그런데 tomcat 에서 application 을 여러개 띄우면 URL 이 application 이름(기본설정에서) 으로 갈린다.

만약 app1, app2 라는 application 이 있다면 URL 은 아래처럼 설정된다.
  • http://hello.com:8080/app1
  • http://hello.com:8080/app2

host 를 여러 개 갖는 것은 아래같은 URL 이 가능하다.
  • http://hello.com:8080/
  • http://hello2.com:8080/

참고로, 만약 port 로 쪼개고 싶다면, connector 를 여러개 두면 된다. 관련된 예제는 ref. 2 에서 확인할 수 있다.



webapp

webapp 밑에 여러개의 application .war 을 두게 되는데, 이 webapp 폴더를 각 host 마다 한개 씩 갖게 해준다.

server.xml

<Server port="8005" shutdown="SHUTDOWN">
    <Service name="Catalina">
        <Engine name="Catalina" defaultHost="hello.com">
            <Host name="hello.com"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            </Host>
            <Host name="hello2.com" appBase="hello2_webapps" unpackWARs="true" autoDeploy="true">
            </Host>
    </Engine>
  </Service>
</Server>

ref. 3 을 참고하자. 참고로 대소문자를 구분하니 주의하자.

host folder

참고로 위와 같이 host 가 생기면, 아래 경로에 각 host 별로 folder 가 생성된다.

  • <tomcat_path>/conf/Catalina/hello2.com

host 의 Context (context.xml) 나 manager.xml 이 여기에 들어가게 된다.


References

  1. Understanding Virtual Host Concept in Tomcat | Ramki Java Blog
  2. tomcat6 - How to run different apps on single Tomcat instance behind different ports? - Stack Overflow
  3. Apache Tomcat 7 (7.0.62) - Virtual Hosting and Tomcat
  4. WARNING: Unknown default host [localhost] for connector [Connector[HTTP/1.1-8080]] [Solved] (Tomcat forum at JavaRanch)




댓글 없음:

댓글 쓰기