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 и закомментируйте следующие строки:
| |
Отредактируйте /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.
- Вы можете скачать JDK 5.0 по адресу http://java.sun.com/j2se/1.5.0/download.jsp.
- Нажмите на Скачать JDK 5.0 Update 6, чтобы перейти на страницу загрузки.
- Нажмите Принять, чтобы принять лицензионное соглашение.
- Затем выберите файл для самораспаковки для Linux. Это загрузка для самораспаковывающегося бинарного файла, а не rpm.
- Загрузите в ваш предпочтительный каталог загрузки. Перейдите в этот каталог и сделайте его исполняемым, выполнив следующую команду:
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. Для этой конкретной настройки нет необходимости собирать пакет из исходников, мы загрузим бинарную версию.
Загрузите бинарную версию в ваш предпочтительный каталог загрузки отсюда: http://tomcat.apache.org/download-55.cgi. Выберите tar.gz из основной секции для 5.5.16.
Теперь перейдите в этот каталог и извлеките файлы, используя следующую команду:
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- Затем перейдите в каталог /usr/lib/.
cd /usr/lib- Теперь создайте символическую ссылку под названием 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.
Я выбрал загрузить текущий исходный код из архивов 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/.
Перейдите в каталог /usr/src.
cd /usr/src- Затем извлеките содержимое, чтобы создать каталог /usr/src/jakarta-tomcat-connectors-1.2.15-src.
tar xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz- Перейдите в каталог /usr/src/jakarta-tomcat-connectors-1.2.15-src/jk/native.
cd jakarta-tomcat-connectors-1.2.15-src/jk/native- Теперь вы готовы создать файл конфигурации для вашей системы. Выполните следующее:
./buildconf.shЭто создаст файл конфигурации в каталоге /usr/src/jakarta-tomcat-connectors-1.2.15-src/jk/native.
- Выполните следующую команду, чтобы настроить 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- Теперь соберите mod_jk с помощью следующей команды:
make- Наконец, если вы успешно выполнили предыдущие команды, скопируйте вновь созданный 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. Обратитесь к руководству по рабочим процессам для получения более подробной информации.
- Сначала создайте файл workers.properties в корневом каталоге Apache2.
touch /etc/apache2/workers.properties- Затем откройте файл 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 |
Сохраните и закройте файл.
Теперь нам нужно открыть файл /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.confApache2:
/etc/init.d/apache2 restart
/etc/init.d/apache2 stop
/etc/init.d/apache2 startДля тех, кто нуждается в помощи с этим учебником, пожалуйста, задавайте свои вопросы здесь:
https://www.howtoforge.com/forums/showthread.php?t=3595
Или даже если вы найдете какие-либо ошибки в учебнике, пожалуйста, дайте мне знать об этом на форуме.
Get new posts in your inbox
No spam. Unsubscribe anytime.