Mod_jk — это модуль или коннектор Apache, который соединяет контейнер сервлетов Apache Tomcat с веб-серверами, такими как Apache, IIS и другими. Mod_jk — это полная замена старого модуля mod_jser, который обрабатывает связь между Tomcat и HTTP-серверами с использованием протокола Apache JServ.
Мы не будем углубляться в работу модуля mod_jk, поскольку это выходит за рамки данной статьи. Вместо этого мы сосредоточимся на том, как интегрировать его с HTTP-сервером Apache.
Узнайте больше о том, как работает mod_jk.
Первым шагом является загрузка модуля mod_jk для Linux и его сборка для веб-сервера Apache. Если вы работаете в Windows, вы найдете предварительно созданный двоичный файл для настройки mod_jk.
Откройте терминал и введите команду:
wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
После загрузки пакета распакуйте его как:
tar xvf tomcat-connectors-1.2.48-src.tar.gz
Затем перейдите в извлеченный каталог /native как:
cd tomcat-connectors-1.2.48-src/native/
Находясь в собственном каталоге, выполните команду:
./configure -with-apxs=/usr/bin/apxs
Приведенная выше команда устанавливает путь к инструментам apxs для HTTP-сервера Apache. Если вы не знаете расположение инструментов apxs, используйте команду which как:
which apxs /usr/bin/apxs
Если вы получили пустой результат, вам необходимо установить пакет apache dev с помощью команды:
sudo apt install apache2-dev # или yum install httpd-devel
Следующим шагом является создание системного объектного файла для модуля mod_jk.
Используйте команду make в собственном каталоге.
make
После успешного завершения вы должны увидеть каталог apache-2.0, созданный в собственном каталоге.
Вы должны увидеть в каталоге файл mod_jk.so.
Скопируйте файл mod_jk.so в каталог модулей apache. Он должен находиться в /usr/lib/apache2/modules или /etc/httpd/modules.
sudo cp mod_jk.so /usr/lib/apache2/modules/
После того, как мы добавили модуль mod_jk в каталог модулей Apache HTTPD, нам нужно загрузить его, отредактировав файл httpd.conf.
В каталоге conf отредактируйте файл httpd.conf с помощью вашего любимого текстового редактора? например Vim.
vim /etc/apache2/apache2.conf
Затем нам нужно добавить директиву include в файл конфигурации apache для загрузки модуля. Вы можете узнать, как загрузить модули, с помощью grep.
grep -i ^Include /etc/apache2/apache2.conf
Приведенная выше команда выдаст такой результат, как показано:
IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf Include ports.conf IncludeOptional conf-enabled/*.conf IncludeOptional sites-enabled/*.conf
Из файла конфигурации выше, модули расположены в каталоге с поддержкой модов.
Перейдите в каталог /etc/apache2/mods-enabled и создайте файл mod_jk.conf.
cd /etc/apache2/mods-enabled/ && sudo touch mods_jk.conf
Внутри файла добавьте следующие записи.
LoadModule jk_module "/usr/lib/apache2/modules/mod_jk.so" JkWorkersFile /etc/apache2/conf-enabled/workers.properties JkShmFile /etc/apache2/logs/mod_jk.shm JkLogFile /etc/apache2/logs/mod_jk.log JkLogLev JkMount /stat/* stat JkMount /* balancer el debug JkLogOptions +forwardKeySize +ForwardURICompat -ForwardDirectories
В JkWorkersFile мы определяем информацию об узле.
JkLogFile определяет расположение файла журнала.
JkLogLevel устанавливает уровень журнала для отладки
В файле воркера, указанном по пути выше, мы определяем информацию о запущенных серверах приложений.
Вот пример конфигурации:
worker.list=stat worker.jk-status.type=status worker.jk-status.read_only=true worker.tomcat_1.type=ajp13 worker.tomcat_1.port=9001 worker.tomcat_1.host=127.0.0.1 worker.tomcat_2.type=ajp13 worker.tomcat_2.port=9002 worker.tomcat_2.host=127.0.0.1 worker.tomcat_3.type=ajp13 worker.tomcat_3.port=9003 worker.tomcat_3.host=1270.0.0.1 worker.list=balancer worker.balancer.type=lb worker.balancer.balance_workers=tomcat_1,tomcat_2,tomcat_3
После этого у вас должен быть установлен и готов к работе модуль mod_jk на сервере Apache.
В этой статье показано, как настроить и использовать модуль mod_jk на сервере HTTPD Apache. Вы можете узнать больше из официальных документов.