Мне нужно разместить два сайта с Tomcat. Это то, что есть в моем Apache conf:
<VirtualHost *:80>
ServerAdmin suporte@project.com
DocumentRoot /root/tomcat/webapps/PROJECT
ServerName www.project.com
</VirtualHost>
Для доступа к сайту я могу получить доступ только через www.project.com/project
. я не могу доступ к индексу, например: www.project.com
А что за случай, когда я хочу разместить другой сайт?
Моя идея:
<VirtualHost *:80>
ServerAdmin suporte@project1.com
DocumentRoot /root/tomcat/webapps/PROJECT1
ServerName www.project1.com
</VirtualHost>
Но у меня ничего не получилось.
Как мне это решить?
При совместном использовании Apache и Tomcat доставка «файлов» JAVA (сервлетов, jsp и т. Д.) Не работает так, как вы набросали. Как вы это сделали, вы можете получить доступ только к файлам, и они доставляются в зависимости от их типа mime.
В качестве первого шага вы должны прочитать об обратном проксировании и, в вашем случае, о модулях mod_proxy_http
и или mod_proxy_ajp
. Я не знаю, какой у вас уровень опыта, поэтому просто напишу несколько строк, которые вам следует адаптировать:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
<IfModule mod_proxy_ajp.c>
<Location />
ProxyPass ajp://127.0.0.1:8009/PROJECT
ProxyPassReverse ajp://127.0.0.1:8009/PROJECT
</Location>
</IfModule>
В стандартной среде Linux вы можете установить эти модули с помощью поставщика пакетов и включить их с помощью a2enmod mod_proxy_ajp
. Это также должно установить mod_proxy
как зависимость. В этом случае вы откажетесь от упомянутых выше директив LoadModule.
В <Location />
Директива - это то, что обрабатывает все запросы, направленные в ваш домен. Так www.project.com
доставляет индекс. Есть еще несколько соображений (безопасность при использовании mod_proxy) и некоторые другие, но они должны указать вам правильное направление.