2010-07-13 3 views
2

루트 도메인 인 www.abc.com을 tomcat의 컨텍스트로 보내고 * .abc.com을 tomcat의 다른 컨텍스트로 연결하고자하는 경우가 있습니다.컨텍스트 및 서브 도메인에서 다른 컨텍스트로의 직접 루트 도메인

현재 www.abc.com abc.com과 *하지만 바람둥이 내 ROOTcontext 모든 지점이 내가 원하는 .abc.com

www.abc.com 및 abc.com ROOT를 가리 키도록하고

* .abc.com을 tomcat의 다른 컨텍스트에 추가하십시오.

+0

는 동일한 실제 컴퓨터에 tomcat 및 apache입니까? 바람둥이와 아파치는 같은 과정인가 아니면 두 가지 다른 과정인가? – Erik

+0

안녕하세요, Erik, tomcat 및 apache는 동일한 물리적 시스템에 있으며 서로 다른 두 프로세스가 있습니다. –

+0

어떻게 현재 리디렉션합니까? .htaccess 사용? 이 코드 줄을 제공 할 수 있습니까? – JochenJung

답변

0

이것은 오래된 것이지만 Google의 첫 번째 페이지에서 여기에 도달 했으므로 답변을받을 자격이 있습니다.

가장 좋은 방법은 httpd에 "VirtualHost"를 추가하고 각 하위 도메인에 대해 tomcat의 server.xml에 "Host"를 추가하는 것입니다. Tomcat의 server.xml에,

<VirtualHost *:80> 
    ServerName abc.com 
    ServerAlias www.abc.com sd1.abc.com 
    ... 
    ProxyPreserveHost true 
    ProxyPass/ajp://localhost:8009/ 
    ProxyPassReverse/ajp://localhost:8009/ 
    ... 
</VirtualHost> 

을 : 그리고는 "HelloMultiWorld"예를 들어이 걸릴

<Engine defaultHost="localhost" ...> 
    ... 
    <Host name="localhost" appBase="webapps" ...>...</Host> 
    <Host name="sd1.abc.com" appBase="webapps-sd1"...>...</Host> 
</Engine> 

를 분명히, 당신은 자신과 함께 "웹 어플리케이션"와 "웹 어플리케이션-SD1"폴더를 필요 ROOT.war.

이 구성에서 HTTPd는 모든 abc.com, www.abc.com 및 sd1.abc.com 요청을 Tomcat에 프록시합니다 (AJP 사용 - HTTP/8080 사용 가능). Tomcat은 "Host : xxx.abc.com"HTTP 헤더 ("ProxyPreserveHost"로 인해)와 함께 요청을 수신합니다. server.xml에 여러 "Host"가 있으면 "Host"헤더에 따라 요청을 라우팅합니다. 알 수없는 호스트는 모두 'defaultHost'로 라우팅됩니다.

관련 문제