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

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

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

на машине localhost это будет

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

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

Обратите внимание: стрелки - это не перенаправления, а то, что я ввел бы, если бы оставил Tomcat как есть.

Я знаю страницу документации 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-адресе?

21
задан JoseK 3 December 2015 в 14:29
поделиться