Настройка виртуального хоста Apache2 и Tomcat6
Что мы настроим
- Виртуальный хост Apache2, который использует JkMount для проксирования в Tomcat6.
- Соответствующий хост в Tomcat6 с отдельной папкой для веб-контента и логов.
- Тестовую JSP-страницу для проверки работы.
Важно: заменяйте в примерах server1.example.com на реальное доменное имя вашего сервера.
1. Создание папок для нового виртуального хоста в Apache2
Выполните на сервере под root или с sudo:
mkdir /var/www/server1.example.com
mkdir /var/www/server1.example.com/htdocs
mkdir /var/www/server1.example.com/logs2. Создание конфигурации сайта в Apache2
Создайте файл конфигурации сайта:
vi /etc/apache2/sites-available/server1.example.comДобавьте следующий блок (сохраняйте отступы и пути):
JkMount /* default
ServerName server1.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/server1.example.com/htdocs
ErrorLog /var/www/server1.example.com/logs/error.log
CustomLog /var/www/server1.example.com/logs/access.log combined
Options -Indexes
Примечание по JkMount: есть несколько вариантов настройки маршрутизации запросов в Tomcat:
JkMount /*— отправляет все запросы в Tomcat.JkMount /*.jsp— проксирует только .jsp файлы.JkMount /folder/*— проксирует файлы из указанной директории.
После создания конфигурации включите сайт:
a2ensite server1.example.comПерезапуск Apache не обязателен сейчас, мы сделаем окончательный перезапуск после всех изменений.
3. Настройка виртуального хоста в Tomcat6
Откройте конфигурацию Tomcat6:
vi /etc/tomcat6/server.xmlНайдите закомментированный коннектор AJP:
И раскомментируйте его, чтобы AJP был доступен:
Далее найдите окончание Engine в файле — блок с и :
Вставьте новый Host для вашего домена непосредственно после и перед :
Убедитесь, что везде заменили server1.example.com на ваше доменное имя.
Создайте папку Catalina для нового хоста и скопируйте стандартные контексты:
mkdir /etc/tomcat6/Catalina/server1.example.com
cp /etc/tomcat6/Catalina/localhost/* /etc/tomcat6/Catalina/server1.example.com/Удалите файл ROOT.xml в новом каталоге, он не нужен для пустого контекста по корню:
rm -f /etc/tomcat6/Catalina/server1.example.com/ROOT.xml4. Создание тестовой страницы и проверка конфигурации
Создайте тестовую JSP-страницу:
vi /var/www/server1.example.com/htdocs/test.jspДобавьте содержимое:
Hello World
Hello World
Today is: <%= new java.util.Date().toString() %>
Сохраните файл и выполните последовательный перезапуск сервисов, чтобы применить изменения:
/etc/init.d/apache2 stop
/etc/init.d/tomcat6 restart
/etc/init.d/apache2 startПосле этого откройте в браузере:
http://server1.example.com/test.jsp
и проверьте, что отображается тестовая страница.

Вы также должны иметь доступ к примерам и менеджерам Tomcat по адресу:
http://server1.example.com/examples

Критерии приёмки
- Тестовая страница /test.jsp возвращает корректный HTML и текущую дату.
- Логи Apache и Tomcat пишутся в /var/www/server1.example.com/logs.
- Доступны /examples, /docs, /manager/html и /host-manager/html (при наличии соответствующих приложений и прав).
Чек-лист администратора
- Созданы каталоги htdocs и logs.
- Файл сайта в /etc/apache2/sites-available присутствует и включён через a2ensite.
- AJP-коннектор в server.xml раскомментирован.
- Добавлен Host в server.xml и создан каталог Catalina для домена.
- Тестовая JSP-страница на месте и доступна.
- Перезапуск сервисов выполнен без ошибок.
Типичные ошибки и способы устранения
- Браузер возвращает 404: проверьте пути DocumentRoot и docBase, убедитесь, что файлы имеют правильные права и владелец.
- Пустая страница или ошибки сервера: просмотрите логи Apache и Tomcat (/var/www/server1.example.com/logs/* и стандартные логи Tomcat в /var/log/tomcat6/).
- AJP не подключается: убедитесь, что в server.xml есть
и что модуль mod_jk настроен и использует тот же worker. - Проблемы с правами доступа: проверьте владельца директорий (обычно www-data или tomcat6) и права выполнения для каталогов.
Альтернативные подходы
- Вместо mod_jk можно использовать mod_proxy_ajp или mod_proxy_http (Reverse Proxy). mod_proxy проще в конфигурации, но mod_jk предоставляет дополнительные возможности балансировки и управления рабочими.
- Для современной версии Tomcat и Apache рассматривайте TLS/HTTPS сразу в Apache и проксирование через HTTPS/HTTP.
Мини-методология развёртывания
- Подготовьте структуру каталогов и права доступа.
- Создайте конфигурацию Apache и временно не перезагружайте сервис.
- Настройте Tomcat (AJP + Host) и создайте Catalina каталоги.
- Протестируйте локально контент (JSP).
- Последовательно перезапустите сервисы и проверьте работоспособность.
Роль — системный администратор
- Подготовить ОС, установить Apache2, Tomcat6 и модуль mod_jk.
- Настроить workers.properties и /etc/apache2/conf.d/mod_jk.conf (не показаны здесь).
- Обеспечить резервное копирование конфигураций перед изменением.
Критерии тестов и приёмки
- HTTP 200 для /test.jsp.
- Строка с текущей датой присутствует в содержимом.
- Файлы логов появляются/обновляются при обращениях.
Глоссарий — однострочно
- AJP: протокол, который позволяет Apache передавать запросы в Tomcat.
- mod_jk: модуль Apache для поддержки AJP и интеграции с Tomcat.
Важные пути конфигурации
Apache2 конфигурация:
/etc/apache2/workers.properties
/etc/apache2/conf.d/mod_jk.conf
/etc/apache2/sites-available/server1.example.com
/var/www/server1.example.com/htdocs/Tomcat6 конфигурация:
/etc/tomcat6/tomcat-users.xml
/etc/tomcat6/server.xml
/etc/tomcat6/Catalina/server1.example.com/Перезапуск Apache2 и Tomcat6 (повтор):
/etc/init.d/apache2 stop
/etc/init.d/tomcat6 restart
/etc/init.d/apache2 startСсылки
- Apache Tomcat: http://tomcat.apache.org/
- Apache Tomcat Connector (mod_jk): http://tomcat.apache.org/connectors-doc/index.html
- Ubuntu: Java и репозитории: https://help.ubuntu.com/
Короткое резюме
- Настройте каталоги, создайте конфигурацию Apache с JkMount, добавьте Host в server.xml Tomcat6, создайте Catalina каталог и тестовую JSP.
- Проверьте /test.jsp и логи. При сбоях проверьте права, пути, AJP-коннектор и соответствие workers.properties.
Сводка:
- Простая и воспроизводимая инструкция для развёртывания виртуального хоста Apache2 с Tomcat6 и тестовой страницей.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента