Apache Tomcat · 8 min read · Oct 23, 2025

Простая интеграция Apache 2 Tomcat 5 mod_jk

Простая интеграция Apache 2 Tomcat 5 mod_jk

Весь учебник основан на многих других учебниках, но я сделал очень простой, без виртуальных хостов. ЭТО БЫЛО ПРОТЕСТИРОВАНО ТОЛЬКО НА DEBIAN 3.1!!!! Это может не работать на других дистрибутивах …

Основной источник информации можно найти здесь:

https://www.howtoforge.com/apache2_tomcat5_mod_jk

Установка Apache2

Я следовал этой ссылке: https://www.howtoforge.com/perfect_setup_debian_sarge_p5

Запустите

apt-get install apache2 apache2-doc   
apt-get install libapache2-mod-php4 libapache2-mod-perl2 php4 php4-cli php4-common php4-curl php4-dev php4-domxml php4-gd php4-imap php4-ldap php4-mcal php4-mhash php4-mysql php4-odbc php4-pear php4-xslt curl libwww-perl imagemagick

Отредактируйте /etc/apache2/apache2.conf. Измените

| DirectoryIndex index.html index.cgi index.pl index.php index.xhtml |

на

| DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml |

Отредактируйте /etc/mime.types и закомментируйте следующие строки:

| #application/x-httpd-php phtml pht php #application/x-httpd-php-source phps #application/x-httpd-php3 php3 #application/x-httpd-php3-preprocessed php3p #application/x-httpd-php4 php4 |

Отредактируйте /etc/apache2/mods-enabled/php4.conf и закомментируйте следующие строки:

| # AddType application/x-httpd-php .php .phtml .php3 # AddType application/x-httpd-php-source .phps |

Отредактируйте /etc/apache2/ports.conf и добавьте Listen 443:

| Listen 80 Listen 443 |

Теперь нам нужно включить некоторые модули Apache (SSL, rewrite и suexec):

a2enmod ssl   
a2enmod rewrite   
a2enmod suexec   
a2enmod include

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

/etc/init.d/apache2 restart

Новый пользователь www-data будет автоматически создан в системе.

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

Чтобы запустить Tomcat, вам нужно установить JDK и установить переменную окружения JAVA_HOME, чтобы определить местоположение окружения JDK на вашей системе. Я выбрал использовать JDK 5.0.

  1. Вы можете скачать JDK 5.0 по адресу http://java.sun.com/j2se/1.5.0/download.jsp.
  2. Нажмите на Скачать JDK 5.0 Update 6, чтобы перейти на страницу загрузки.
  3. Нажмите Принять, чтобы принять лицензионное соглашение.
  4. Затем выберите файл для самораспаковки для Linux. Это загрузка для самораспаковывающегося бинарного файла, а не rpm.
  5. Загрузите в ваш предпочтительный каталог загрузки. Перейдите в этот каталог и сделайте его исполняемым, выполнив следующую команду:
chmod +x jdk-1_5_0_06-linux-i586.bin

Теперь выполните файл:

./jdk-1_5_0_06-linux-i586.bin

Теперь у вас должен быть новый каталог под названием jdk1.5.0_06. Теперь переместите этот каталог в место, где он должен быть запущен. Я выбрал /usr/lib/.

mv jdk1.5.0_06 /usr/lib

Теперь создайте символическую ссылку под названием jdk на JAVA_HOME с помощью следующей команды. Это позволит вам легко переключаться между различными jvms, если вам когда-либо это понадобится.

cd /usr/lib   
ln -s jdk1.5.0_06 jdk

Теперь нам нужно установить переменную окружения JAVA_HOME. Добавьте следующее в конец /etc/profile сразу после export PATH.

| JAVA_HOME="/usr/lib/jdk" export JAVA_HOME |

/etc/profile выполняется при запуске и когда пользователь входит в систему. Чтобы обновить окружение, вам нужно будет выйти и снова войти в систему.

Проверьте, чтобы убедиться, что JAVA_HOME определен правильно, выполнив команду ниже. Это должно сообщить местоположение Java SDK, которое должно быть /usr/lib/jdk.

echo $JAVA_HOME

Установка Tomcat

В этом разделе вы загрузите и установите Apache Tomcat 5.5.16. Для этой конкретной настройки нет необходимости собирать пакет из исходников, мы загрузим бинарную версию.

  1. Загрузите бинарную версию в ваш предпочтительный каталог загрузки отсюда: http://tomcat.apache.org/download-55.cgi. Выберите tar.gz из основной секции для 5.5.16.

  2. Теперь перейдите в этот каталог и извлеките файлы, используя следующую команду:

cd /mydownloads #(не забудьте перейти в ваш каталог загрузки)   
tar xvzf apache-tomcat-5.5.16.tar.gz

Теперь у вас должен быть новый каталог под названием apache-tomcat-5.5.16. Теперь переместите этот каталог в место, где он должен быть установлен. Снова я выбрал /usr/lib/. Обратите внимание, что это место будет называться CATALINA_HOME в документации Tomcat.

mv apache-tomcat-5.5.16 /usr/lib
  1. Затем перейдите в каталог /usr/lib/.
cd /usr/lib
  1. Теперь создайте символическую ссылку под названием apache-tomcat на CATALINA_HOME с помощью следующей команды.
ln -s apache-tomcat-5.5.16 apache-tomcat

Это избавит вас от необходимости вносить изменения в скрипты запуска и остановки каждый раз, когда вы обновляете Tomcat, и если вы хотите, это также позволит вам хранить несколько версий Tomcat на вашей системе и легко переключаться между ними.

Теперь вы должны иметь возможность запускать и останавливать Tomcat из каталога CATALINA_HOME/bin. Если вы используете другую оболочку, отличную от bash, вам нужно будет добавить sh в начало команды. Теперь вы должны иметь возможность проверить, что Tomcat установлен, запустив его и открыв ваш браузер и введя http://localhost:8080 в ваш браузер. Порт 8080 является портом по умолчанию для Tomcat и может быть легко изменен в файле /usr/lib/apache-tomcat/conf/server.xml. (Мы будем работать с этим файлом позже.) Если вы планируете получить доступ к этой странице удаленно, обязательно перенаправьте соответствующий порт на IP-адрес вашего сервера в вашем маршрутизаторе. Теперь вы должны увидеть страницу приветствия Tomcat, которая содержит ссылки на документацию Tomcat, а также образцы скриптов JSP/Servlet. Убедитесь, что Tomcat работает, выполнив некоторые из примеров, найденных на странице приветствия.

cd /usr/lib/apache-tomcat/bin   
./startup.sh

Чтобы остановить сервер, вам нужно будет выполнить следующую команду. Не стесняйтесь пробовать это, но пока мы оставим Tomcat работающим.

./shutdown.sh

Установка и настройка mod_jk

Чтобы установить соединение между Tomcat и Apache, нам нужно будет загрузить и установить соединитель mod_jk. Вы обнаружите, что документация Apache рекомендует установить упакованную версию mod_jk, если она доступна для вашего конкретного дистрибутива Linux. Многие устаревшие ресурсы рекомендуют установить соединитель mod_jk2, но я обнаружил, что он был устаревшим, и хотя mod_jk был разработан до mod_jk2, он по-прежнему полностью поддерживается и очень стабилен.

Майк Милсон привел некоторые хорошие доводы за использование mod_jk для подключения Tomcat к Apache для Red Hat здесь: Интеграция Tomcat и Apache на Red Hat Linux.

  1. Я выбрал загрузить текущий исходный код из архивов Apache: http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/source/jk-1.2.15/. Загрузите файл jakarta-tomcat-connectors-1.2.15-src.tar.gz в ваш каталог /usr/src/.

  2. Перейдите в каталог /usr/src.

cd /usr/src
  1. Затем извлеките содержимое, чтобы создать каталог /usr/src/jakarta-tomcat-connectors-1.2.15-src.
tar xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz
  1. Перейдите в каталог /usr/src/jakarta-tomcat-connectors-1.2.15-src/jk/native.
cd jakarta-tomcat-connectors-1.2.15-src/jk/native
  1. Теперь вы готовы создать файл конфигурации для вашей системы. Выполните следующее:
./buildconf.sh

Это создаст файл конфигурации в каталоге /usr/src/jakarta-tomcat-connectors-1.2.15-src/jk/native.

  1. Выполните следующую команду, чтобы настроить mod_jk для вашей системы.
    Важно: Вам нужно будет установить и настроить apxs2 (инструмент расширения APache) с Apache. Если у вас его нет, как это было в моем случае, вы можете загрузить и установить пакет apache2-threaded-dev (который заменил прежний пакет apache-dev) с www.debian.org. На момент написания этой статьи архив пакетов Debian на www.debian.org был недоступен, и они направили меня на свой временный сайт, пока они не решат свои проблемы pdo.debian.net. Я нашел пакет apache2-threaded-dev и смог успешно его установить.
    Обязательно укажите правильное местоположение apxs2 на вашей системе в пути команды.
./configure --with-apxs=/usr/bin/apxs2
  1. Теперь соберите mod_jk с помощью следующей команды:
make
  1. Наконец, если вы успешно выполнили предыдущие команды, скопируйте вновь созданный mod_jk.so в каталог модулей Apache2. Мои модули находились по адресу /usr/lib/apache2/modules.
cd apache-2.0   
cp /usr/src/jakarta-tomcat-connectors-1.2.15-src/jk/native/apache-2.0/mod_jk.so /usr/lib/apache2/modules

Теперь вы готовы перейти к следующему этапу, который заключается в начале настройки Apache и Tomcat. Вы можете найти больше информации о соединителе mod_jk по адресу http://tomcat.apache.org/connectors-doc/howto/apache.html.

Настройка Tomcat и Apache

Создайте файл workers.properties.
Важно: Обязательно сделайте резервную копию ваших конфигурационных файлов перед изменением.
Файл workers.properties содержит детали о том, как каждый процесс связан с Tomcat, определяя рабочие процессы, которые общаются через протокол ajpv13. Обратитесь к руководству по рабочим процессам для получения более подробной информации.

  1. Сначала создайте файл workers.properties в корневом каталоге Apache2.
touch /etc/apache2/workers.properties
  1. Затем откройте файл workers.properties и добавьте следующее. Вы можете найти много других примеров файла workers.properties в интернете, но это тот, который я создал, и он, похоже, работает хорошо с другими частями, которые уже были настроены в этом учебнике.

| workers.tomcat_home=/usr/lib/apache-tomcat workers.java_home=/usr/lib/jdk ps=/ worker.list=worker1 worker.default.port=8009 worker.default.host=localhost worker.default.type=ajp13 worker.default.lbfactor=1 |

  1. Сохраните и закройте файл.

  2. Теперь нам нужно открыть файл /etc/apache2/apache2.conf и добавить следующие строки внизу. (httpd.conf предназначен только для обратной совместимости):

| LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so # Где найти workers.properties JkWorkersFile /etc/apache2/workers.properties # Где разместить журналы jk JkLogFile /var/log/apache2/mod_jk.log # Установите уровень журнала jk [debug/error/info] JkLogLevel info # Выберите формат журнала JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " # JkOptions указывает на отправку SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat устанавливает формат запроса JkRequestLogFormat "%w %V %T" # Отправить сервлет для контекста / jsp-examples на рабочий процесс с именем worker1 JkMount /jsp-examples worker1 # Отправить JSP для контекста /jsp-examples/* на рабочий процесс с именем worker1 JkMount /jsp-examples/* worker1 |

Сохраните и закройте файл.

Теперь последний момент безопасности.

Мы создадим группу и пользователя tomcat tomcat следующим образом:

groupadd tomcat   
useradd -g tomcat tomcat

Затем измените пользователя и группу пути Tomcat:

chown -R tomcat:tomcat /usr/lib/apache-tomcat-5.5.16

Чтобы изменить пароль пользователя tomcat, с правами root введите:

passwd tomcat

и следуйте инструкциям.

Затем для запуска и остановки сервера Tomcat вы должны использовать пользователя tomcat.

su - tomcat

Теперь остановите и запустите Tomcat:

cd /usr/lib/apache-tomcat/bin  
./shutdown.sh  
./startup.sh

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

/etc/init.d/apache2 restart

Вы закончили.

Тестирование:

В этом тесте мы направляем все URL, которые начинаются с “ /jsp-examples “, на Tomcat.
В реальной ситуации мы могли бы направить только JSP или сервлеты на рабочий процесс JK.

Убедитесь, что никакой другой сервер не работает на портах Tomcat по умолчанию 8005, 8009 и 8080.
Убедитесь, что никакой другой сервер не работает на порту Apache, который обычно составляет 8080 или 80.

Сначала запустите Tomcat: всегда сначала запускайте Tomcat, а затем запускайте Apache.
Если вам нужно перезапустить Tomcat, не забудьте сначала остановить Apache и перезапустить его после перезапуска Tomcat.
Запустите Apache: укажите в браузере http://localhost и убедитесь, что вы получаете страницу Apache по умолчанию. Замените “localhost” на фактическое имя машины/IP, если необходимо.

Укажите в браузере http://localhost:8080 и убедитесь, что вы получаете страницу Tomcat по умолчанию.

Укажите в браузере http://localhost/jsp-examples/ и убедитесь, что вы получаете индексную страницу для примеров Tomcat.

Это будет обслуживаться Apache и будет указывать на то, что вы успешно завершили интеграцию Apache и Tomcat.

Ссылки и пути:

Конфигурация Tomcat:

/usr/lib/apache-tomcat/conf/server.xml

Остановка и запуск Tomcat:

cd /usr/lib/apache-tomcat/bin  
./shutdown.sh  
./startup.sh

Модули Apache:

/usr/lib/apache2/modules

Конфигурация Apache:

/etc/apache2/workers.properties   
/etc/apache2/apache2.conf   
/etc/apache2/httpd.conf

Apache2:

/etc/init.d/apache2 restart   
/etc/init.d/apache2 stop   
/etc/init.d/apache2 start

Для тех, кто нуждается в помощи с этим учебником, пожалуйста, задавайте свои вопросы здесь:

https://www.howtoforge.com/forums/showthread.php?t=3595

Или даже если вы найдете какие-либо ошибки в учебнике, пожалуйста, дайте мне знать об этом на форуме.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.