Рейтинг:0

Как я могу протестировать работника ajp (tomcat10, apache 2.4.6)?

флаг cn

У меня простая настройка сервера:

  1. Апач 2.4.6
  2. JK Worker для общения с Tomcat, где живет служба REST
  3. Томкэт 10

Виртуальный хост

В моем файле виртуального хоста у меня есть эта конфигурация (фрагмент в <VirtualHost *:443>):

<Каталог "/var/www/frontends">
    Требовать все предоставленные

    RewriteEngine включен

    # [...]
    RewriteRule co2avatar-app/sdp-api$ sdp-api/test/ [PT]
    RewriteRule co2avatar-app/sdp-api/(.*)$ sdp-api/$1 [PT]

    # что-нибудь еще для index.html
    Правило перезаписи co2avatar-app/(.+) co2avatar-app/index.html [L]
</Каталог>

# определение работника
JkMount /sdp-api/* ajp13_worker_prod
JkMount/sdp-api ajp13_worker_prod

Рабочие

# рабочие.свойства -

# worker.tomcat_home=/opt/tomcat/latest/

#
# worker.java_home должен указывать на вашу установку Java. Обычно
# у вас должны быть каталоги bin и lib под ним.
#
worker.java_home=/usr/lib/jvm/

пс=/
worker.list=ajp13_worker_prod,ajp13_worker_test,ajp13_worker_tomcat10_test,ajp_worker_tomcat10_prod

#
#------ ajp13_worker ОПРЕДЕЛЕНИЕ РАБОТЫ ----------------
#--------------------------------------------- --------------------
#
рабочий.ajp13_worker_prod.port=8009
worker.ajp13_worker_prod.host=локальный хост
рабочий.ajp13_worker_prod.type=ajp13

рабочий.ajp13_worker_test.port=8010
worker.ajp13_worker_test.host=локальный хост
рабочий.ajp13_worker_test.type=ajp13

рабочий.ajp13_worker_tomcat10_test.port=8020
worker.ajp13_worker_tomcat10_test.host=локальный хост
рабочий.ajp13_worker_tomcat10_test.type=ajp13

рабочий.ajp13_worker_tomcat10_prod.port=8019
worker.ajp13_worker_tomcat10_prod.host=локальный хост
рабочий.ajp13_worker_tomcat10_prod.type=ajp13

# мы вообще не используем балансировку нагрузки.

Я должен добавить, что ajp13_worker_prod worker указывает на службу в экземпляре Tomcat 9, ajp13_worker_tomcat10_prod worker к экземпляру Tomcat 10. Но это очень хорошо работает для другого виртуального хоста (который фактически является тестовой системой).

Все работает нормально, пока я не изменю строки

JkMount /sdp-api/* ajp13_worker_prod
JkMount/sdp-api ajp13_worker_prod

к

JkMount /sdp-api/* ajp13_worker_tomcat10_prod
JkMount/sdp-api ajp13_worker_tomcat10_prod

Службы в Tomcat работают нормально, я могу связаться с ними через завиток http://localhost:6085/[...]. Таким образом, порты открыты для использования с локального хоста.

Но я не могу до них добраться снаружи, через апач. Здесь я получаю 500 с Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос.

Я просмотрел все возможные файлы журнала ошибок, но не вижу проблемы, особенно в журналах Apache.

Есть ли способ протестировать работника JK?

Есть ли способ проверить коннектор Tomcat?

Это выглядит так в сервер.xml: <Connector port="8019" proxyName="co2avatar.org" proxyPort="80" protocol="AJP/1.3" redirectPort="8443" secretRequired="false" />. Коннектор HTTP работает, но может не этот? Существует проблема между Apache (рабочий ajp) и Tomcat, но просто запуск запроса к Apache еще не помогает.

(Вопрос новичка:) Можно ли перезапустить только модуль JK?

Вот выдержка из Apache журнал ошибок (в mod_jk.log ничего нет):

[jk:warn] [pid 1286] JkShmFile не определен в httpd.conf. Использование по умолчанию /etc/httpd/logs/jk-runtime-status
[slotmem_shm:debug] [pid 1286] mod_slotmem_shm.c(448): AH02301: прикрепить ищет /run/httpd/slotmem-shm-mod_heartmonitor.shm
[lbmethod_heartbeat:notice] [pid 1286] AH02282: Нет slotmem из mod_heartmonitor
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(181): AH02199: SSL не включен на виртуальном хосте h2862201.stratoserver.net:80, пропущена настройка SSL
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: чтение сертификата сервера из '/etc/letsencrypt/live/co2-avatar.com/cert.pem'
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: чтение сертификата сервера из '/etc/letsencrypt/live/co2-avatar.com/cert.pem'
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: чтение сертификата сервера из '/etc/letsencrypt/live/co2-avatar.com/fullchain.pem'
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: чтение сертификата сервера из '/etc/letsencrypt/live/co2-avatar.com/cert.pem'
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: чтение сертификата сервера из '/etc/letsencrypt/live/co2-avatar.com/cert.pem'
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(391): AH00821: shmcb_init выделил 512000 байт общей памяти
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(407): AH00822: для 511912 байт (512000, включая заголовок), рекомендуется 32 подкэша, по 88 индексов в каждом
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(440): AH00824: следуют варианты shmcb_init_memory
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(442): AH00825: subcache_num = 32
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(444): AH00826: subcache_size = 15992
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(446): AH00827: subcache_data_offset = 2128
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(448): AH00828: subcache_data_size = 13864
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(450): AH00829: index_num = 88
[socache_shmcb:info] [pid 1286] AH00830: инициализация socache с общей памятью
[ssl:info] [pid 1286] AH01887: Init: Инициализация (виртуальных) серверов для SSL
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: Перекрытие IP/портов SSL-сервера: h2862201.stratoserver.net:443 (/etc/httpd/conf.d/ssl.conf:57) vs. co2-avatar.com:443 (/etc/httpd/conf.d/vhost-le-ssl.conf:4)
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: Перекрытие IP/портов SSL-сервера: gitlab.sustainable-data-platform.org:443 (/etc/httpd/conf.d/gitlab-le- ssl.conf:2) и co2-avatar.com:443 (/etc/httpd/conf.d/vhost-le-ssl.conf:4)
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: Перекрытие IP/порта SSL-сервера: co2avatar.org:443 (/etc/httpd/conf.d/co2avatar.conf:66) против co2- avatar.com:443 (/etc/httpd/conf.d/vhost-le-ssl.conf:4)
[ssl:warn] [pid 1286] AH02292: Init: виртуальные хосты SSL на основе имени работают только для клиентов с поддержкой указания имени сервера TLS (RFC 4366)
[ssl:info] [pid 1286] AH01876: mod_ssl/2.4.6 скомпилирован для сервера: Apache/2.4.6, библиотека: OpenSSL/1.0.2k
[proxy:debug] [pid 1292] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 1292] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 1292] proxy_util.c(1939): AH00931: инициализирован обработчик одного соединения в дочернем элементе 1292 для (*)
[proxy:debug] [pid 1293] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 1293] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 1293] proxy_util.c(1939): AH00931: инициализирован обработчик одного соединения в дочернем элементе 1293 для (*)
[proxy:debug] [pid 1295] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 1295] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 1295] proxy_util.c(1939): AH00931: инициализирован обработчик одного соединения в дочернем элементе 1295 для (*)
[mpm_prefork:notice] [pid 1286] AH00163: Apache/2.4.6 (CentOS) mod_jk/1.2.48 OpenSSL/1.0.2k-fips PHP/7.2.29 настроен – возобновление нормальной работы
[mpm_prefork:info] [pid 1286] AH00164: Сервер построен: 16 ноября 2020 г., 16:18:20
[core:notice] [pid 1286] AH00094: Командная строка: '/usr/sbin/httpd -D FOREGROUND'
[mpm_prefork:debug] [pid 1286] prefork.c(1005): AH00165: принять мьютекс: sysvsem (по умолчанию: sysvsem)
[proxy:debug] [pid 1294] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 1294] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 1294] proxy_util.c(1939): AH00931: инициализирован обработчик одного соединения в дочернем элементе 1294 для (*)
[proxy:debug] [pid 1296] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 1296] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 1296] proxy_util.c(1939): AH00931: инициализирован одиночный рабочий процесс соединения в дочернем элементе 1296 для (*)
[proxy:debug] [pid 1378] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 1378] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 1378] proxy_util.c(1939): AH00931: инициализирован одиночный рабочий процесс подключения в дочернем 1378 для (*)
[proxy:debug] [pid 1408] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 1408] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 1408] proxy_util.c(1939): AH00931: инициализирован одиночный рабочий процесс подключения в дочернем 1408 для (*)
[proxy:debug] [pid 1859] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 1859] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 1859] proxy_util.c(1939): AH00931: инициализирован одиночный рабочий процесс подключения в дочернем 1859 для (*)
[proxy:debug] [pid 15109] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 15109] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 15109] proxy_util.c(1939): AH00931: инициализирован одиночный рабочий процесс соединения в дочернем элементе 15109 для (*)
[proxy:debug] [pid 17029] proxy_util.c(1843): AH00925: инициализация рабочего прокси: обратный общий доступ
[proxy:debug] [pid 17029] proxy_util.c(1888): AH00927: инициализация рабочего прокси: обратный локальный
[proxy:debug] [pid 17029] proxy_util.c(1939): AH00931: инициализирован одиночный рабочий процесс соединения в дочернем элементе 17029 для (*)
Рейтинг:0
флаг cn

Ну, это смущает, но я использовал неправильное имя в моем списке рабочих.

ajp_worker_tomcat10_prod вместо ajp13_worker_tomcat10_prod.

Интересная часть заключается в том, что не было сообщения об ошибке, такого как работник не найден или же рабочий не имеет конфигурации. Просто странное сообщение от Apache и ничего в mod_jk.log или у апача журнал ошибок.

Это также может быть проблемой конфигурации.

Ответить или комментировать

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