Как сопоставить поддомен с веб-приложением на Tomcat 6 (включая корневое веб-приложение)? - PullRequest
21 голосов
/ 14 сентября 2010

субъект говорит все это.Я хочу сопоставить каждый поддомен с веб-приложением, например:

http://root.domain.com:8080 -> http://domain.com:8080/
http://manager.domain.com:8080 -> http://domain.com:8080/manager
http://abc.domain.com:8080 -> http://domain.com:8080/abc
http://def.domain.com:8080 -> http://domain.com:8080/def

на компьютере с локальным хостом, это будет

http://root.localhost:8080 -> http://localhost:8080/
http://manager.localhost:8080 -> http://localhost:8080/manager
http://abc.localhost:8080 -> http://localhost:8080/abc
http://def.localhost:8080 -> http://localhost:8080/def

В идеале, вместо этого я хотел бы использовать порт 808080, но это другая история.Я был бы рад начать сначала с 8080, так что путь в конце URL исчезает.

Обратите внимание, что стрелки - это не перенаправления, а то, что я бы ввел, если бы ушелTomcat as is.

Я знаю страницу документации Tomcat http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html. Я читал ее много раз, но не добился большого прогресса.Я отредактировал etc / hosts, чтобы добавить 127.0.0.1 bbstats.localhost.Затем я добавил

<Host name="bbstats.localhost" appBase="webapps/bbstats"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
</Host>

в файл Tomcat server.xml в каталоге conf.Файл context.xml моего веб-приложения:

<Context path="/bbstats" docBase="bbstats" debug="5" reloadable="true" crossContext="true"> 
</Context>

Перезапустите Tomcat.Redploy через Ant.При вводе

http://bbstats.localhost:8080/

в браузер я получаю пустой экран.

При использовании appBase = "webapps" вместо appBase = "webapps / bbstats",Я добираюсь до корневого приложения Tomcat.Последнее поведение является ожидаемым.Но как мне заставить bbstats.localhost: 8080 перейти в веб-приложение bbstats без завершающего / bbstats в URL-адресе?

1 Ответ

28 голосов
/ 14 сентября 2010

Можете ли вы попробовать вложить каждое веб-приложение в качестве корневого веб-приложения в <Host> в server.xml, указав path="". Я не пробовал это сам.

<Host name="bbstats.localhost" appBase="webapps">
    <Context path="" docBase="/bbstats/"/>
</Host>

<Host name="tomcatstuff.localhost" appBase="webapps">
    <Context path="" docBase="/tomcatstuff/"/>
</Host>
...