Гид по технологиям

Установка Tomcat6 с Sun-Java и интеграцией Apache2 на Ubuntu 10.04 Lucid Lynx с виртуальными хостами

• 5 min read • DevOps • Обновлено 28 Nov 2025
Установка Tomcat6 с Sun-Java и Apache2 на Ubuntu 10.04
Установка Tomcat6 с Sun-Java и Apache2 на Ubuntu 10.04

Краткое руководство по установке Tomcat6 на Ubuntu 10.04 с Sun-Java (sun-java6-jdk), интеграцией в Apache2 через модуль mod_jk и настройкой виртуальных хостов. Включены файлы конфигурации, примеры виртуального хоста, чек-листы и устранение неполадок.

Введение

Автор: Jaac
Последнее редактирование: 25-01-2011

Apache Tomcat — открытый контейнер сервлетов, реализующий спецификации Java Servlet и JavaServer Pages (JSP). Tomcat предоставляет «чисто Java» HTTP-среду выполнения для Java-приложений и обычно работает отдельно от веб-сервера Apache HTTPd (C-реализация). Интеграция обычно делается через коннектор mod_jk с AJP-портом.

Определение: AJP — протокол для связи между Apache и контейнером сервлетов (Tomcat), работает поверх TCP и обычно использует порт 8009.

Предварительная заметка

Это руководство ориентировано на Ubuntu 10.04 Server (Lucid Lynx). Перед началом убедитесь, что у вас базовая установка Ubuntu 10.04 с Apache2 или LAMP и статический IP. В примерах используется IP 192.168.1.100 и hostname server1.example.com.

Важное: выполняйте команды от root (sudo su).

TL;DR шаги

  1. Установить python-software-properties и подключить репозиторий partner.
  2. Установить sun-java6-jdk и openjdk-6-jdk, выбрать sun как java по умолчанию.
  3. Установить tomcat6 и дополнения, настроить tomcat-users.xml.
  4. Установить libapache2-mod-jk, создать workers.properties и конфигурацию mod_jk.
  5. Создать виртуальные хосты Apache, пробросить URL к Tomcat через JkMount.
  6. Проверить сеть, firewall и перезапустить службы.

Важно: Ubuntu 10.04 устарела и больше не получает обновлений безопасности. Для продакшена рекомендуется более новый релиз Ubuntu.

1 Подготовка системы и привилегии

Войдите как root:

sudo su

Проверьте IP и /etc/hosts:

ifconfig -a
vi /etc/hosts

Добавьте строку вида:

192.168.1.100 server1.example.com server1

2 Установка Java Development Kit (JDK)

Установите помощник для добавления репозиториев:

apt-get install python-software-properties

Добавьте репозиторий partner (Lucid):

add-apt-repository "deb http://archive.canonical.com/ubuntu lucid partner"

Обновите кэш пакетов:

apt-get update

Установите Sun JDK и OpenJDK (Sun рекомендован для совместимости с некоторыми приложениями):

apt-get install sun-java6-jdk openjdk-6-jdk

Примите лицензию Sun при запросе.

Убедитесь, что система использует sun-java6-jdk по умолчанию:

update-alternatives --config java

Выберите путь, похожий на /usr/lib/jvm/java-6-sun/jre/bin/java.

Проверьте версию Java:

java -version

Ожидаемый пример вывода (зависит от версии):

root@ubuntu:~# java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

3 Установка Tomcat6

Установите Tomcat6 и дополнительные пакеты:

apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-docs tomcat6-examples tomcat6-user

3.1 Объявление пользователей и ролей

Отредактируйте файл /etc/tomcat6/tomcat-users.xml и добавьте роли и пользователя для доступа к менеджеру:

vi /etc/tomcat6/tomcat-users.xml

Вставьте:



Замените YOUR_USERNAME и YOUR_PASSWORD на свои учётные данные и сохраните файл.

Важно: в продакшне используйте более строгие меры защиты менеджера Tomcat (разрешения по IP, SSL, отдельный контекст), см. раздел безопасность.

3.2 Перезапуск Tomcat и первая проверка

/etc/init.d/tomcat6 restart

Откройте в браузере: http://192.168.1.100:8080/ — должна появиться стандартная страница Tomcat.

Страница по умолчанию Tomcat на 192.168.1.100:8080

Проверьте доступ к менеджеру: http://192.168.1.100:8080/manager/html — войдите под созданными учетными данными.

Tomcat Manager HTML — страница входа и интерфейс управления приложениями

4 Интеграция Tomcat6 с Apache2 через mod_jk

Установите модуль-коннектор:

apt-get install libapache2-mod-jk

При необходимости включите модуль и перезапустите Apache:

a2enmod jk
/etc/init.d/apache2 restart

4.1 Конфигурирование workers.properties

Создайте файл, в котором определяются воркеры (Tomcat-инстансы):

vi /etc/apache2/workers.properties

Добавьте содержимое:

workers.tomcat_home=/var/lib/tomcat6
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Разъяснение основных параметров:

  • worker.list — список активных воркеров.
  • worker.DEFAULT.port — порт AJP, по умолчанию 8009 в Tomcat.
  • worker.DEFAULT.host — где слушает Tomcat (localhost если на той же машине).
  • worker.default.type — тип коннектора (ajp13 для mod_jk).

4.2 Конфигурация модульного файла mod_jk для Apache

Создайте конфигурацию, которая будет загружаться Apache при старте:

vi /etc/apache2/conf.d/mod_jk.conf

Вставьте:


  JkWorkersFile /etc/apache2/workers.properties
  JkShmFile /var/log/apache2/mod_jk.shm
  JkLogFile /var/log/apache2/mod_jk.log
  JkLogLevel info
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  JkRequestLogFormat "%w %V %T"

Перезапустите Apache:

/etc/init.d/apache2 restart

5 Настройка виртуальных хостов Apache и маршрутизация запросов к Tomcat

Часто требуется пробросить только определённые URL (например, /app/*) в Tomcat, а остальное отдавать Apache. Пример виртуального хоста:

vi /etc/apache2/sites-available/example.com.conf

  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com

  # Логирование
  ErrorLog /var/log/apache2/example.com-error.log
  CustomLog /var/log/apache2/example.com-access.log combined

  # Подключаем мод_jk
  JkMount /app/* default
  JkMount /*.jsp default

  # Пример: проксирование контекста /manager запрещено наружу
  
    Require ip 127.0.0.1
  

Активируйте сайт и перезапустите Apache:

a2ensite example.com
/etc/init.d/apache2 reload

Пояснение: JkMount указывает, какие URL отправлять воркеру default (как определено в workers.properties).

6 Проверка и отладка

Проверки:

  • Убедитесь, что Tomcat слушает AJP порт 8009:
netstat -tulpn | grep 8009
  • Проверьте логи Apache и Tomcat при ошибках:

    • /var/log/apache2/mod_jk.log
    • /var/log/apache2/error.log
    • /var/log/tomcat6/catalina.out
  • Попробуйте curl через Apache и напрямую Tomcat для сравнения:

curl -I http://localhost/app/your-servlet
curl -I http://localhost:8080/app/your-servlet

Распространённые проблемы и решения

  • Ошибка 404 при пробросе через mod_jk: проверьте JkMount и контексты в Tomcat (context path).
  • Пустой ответ или 502: проверьте, слушает ли Tomcat AJP (8009) и нет ли блокировки firewall.
  • Невозможно зайти в /manager: убедитесь, что пользователь и роли в tomcat-users.xml корректны и что конфигурация manager’а не ограничивает доступ по IP.

7 Безопасность и ограничения доступа

  • Отключите публичный доступ к /manager и /host-manager через Apache (разрешить только с внутренних IP).
  • На продакшн-серверах используйте SSL на стороне Apache и проксируйте трафик безопасно.
  • Для защиты менеджеров Tomcat используйте дополнительные фильтры, firewall и защиту на уровне сети.

Пример ограничений в конфигурации Apache для /manager:


  Order deny,allow
  Deny from all
  Allow from 127.0.0.1

На Ubuntu 10.04 вместо Order/Allow можно использовать соответствующие директивы для вашей версии Apache.

8 Критерии приёмки

  1. Tomcat отвечает на порту 8080 и на AJP порту 8009.
  2. Apache корректно проксирует URL, указанные через JkMount, на Tomcat.
  3. Страницы вне контекста Tomcat обслуживаются Apache.
  4. Менеджер Tomcat защищён (доступ только с разрешённых IP/по учётным данным).

Чек-листы по ролям

Системный администратор:

  • Установлены пакеты sun-java6-jdk, tomcat6, libapache2-mod-jk.
  • Tomcat настроен и перезапущен.
  • Apache настроен с mod_jk, конфигурации протестированы.

Разработчик:

  • Приложение разворачивается в Tomcat и доступно по контексту.
  • Конфигурация JkMount соответствует маршрутам приложения.

Оператор DevOps:

  • Логи централизованы и доступны.
  • Мониторинг процессов Tomcat/Apache настроен.

Мини-методология развёртывания

  1. Подготовить VM/сервер и статический IP.
  2. Установить JDK и выбрать Sun как default.
  3. Установить Tomcat, создать пользователя менеджера.
  4. Установить libapache2-mod-jk и настроить workers.properties.
  5. Настроить виртуальные хосты Apache с JkMount.
  6. Тестировать локально и через Apache, настроить firewall и ограничения доступа.

Глоссарий (1 строка)

  • Tomcat — Java контейнер сервлетов.
  • AJP — протокол для связи Apache ↔ Tomcat.
  • mod_jk — Apache модуль-коннектор для AJP.

Короткое резюме

Это руководство показывает полный путь: установка Sun-Java, установка Tomcat6, базовая настройка пользователей, интеграция с Apache2 через mod_jk и пример настройки виртуального хоста с пробросом URL. Включены советы по отладке и безопасность.

Ключевые действия: установить JDK, настроить Tomcat и mod_jk, прописать JkMount в виртуальном хосте Apache, перезапустить сервисы и проверить доступность через браузер.

Спасибо за внимание.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро