Как настроить uriworkermap.properties в server.xml для интеграции Apache - Tomcat?

Я настолько близок к завершению своей первой пользовательской установки, что могу попробовать ее на вкус... Я слежу за установкой Apache Tomcat, и оба сервера работают бок о бок. Мой сервер Apache настроен на общедоступный IP-адрес и доставляет страницы HTML и XML в Интернет.

Мой Tomcat работает с localhost:8080, и я могу выполнить пример JSP, сервлетов, апплетов и т. Д.

Теперь я подключаюсь, чтобы Tomcat мог обслуживать JSP и внутреннюю базу данных для запросов Apache. Я нашел соединитель Tomcat, и из журналов я могу убедиться, что URL поступает из Интернета, так как он регистрируется в журнале Apache, а затем отправляется в Tomcat, поскольку я вижу URL в его журналах и анализируемые компоненты., Пока все хорошо... то, что не происходит, это обратная поездка - ответ.

Браузер теперь получает ответ 503 Service Not Available (огромный прогресс / успех), и я вижу, что ascii / hex-ответ был сброшен в журналах.

Я думаю, что недостающий кусок получает правила, настроенные в конфигурации сервера. Вот где установочный документ стал очень расплывчатым. Я просмотрел ответ, но все возвращается как ответы IIS, что не относится к моему Apache.

Я думаю, что правила верны, но мне нужно знать, как "поместить их в конфигурацию сервера". Я предполагаю, что файл идет в папку conf /, где хранятся мои работники.properties, и я предполагаю, что ссылка идет в 'server.xml' - правильны ли эти две точки?? А в каком разделе server.xml он находится и как отформатирован узел конфигурации?

Если мой вопрос требует более подробной информации, пожалуйста, ответьте, и я предоставлю больше.

  • Apache 2.2
  • Windows XP 5.1.26 (старая, но все SP установлены)
  • Tomcat 5.2.7
  • Java / JRE / JSDK и т. Д. Имеют размер ~1.4.x, 1.5.x и 1.6.x (для этого пришлось бы копать больше, если это необходимо).
  • Разъем 1.7 (я думаю) настроен на AJP1.3
  • Все стандартные порты
  • Брандмауэр - Netgear с переадресацией портов
  • ID пользователя / пароли не по умолчанию
  • Другие вещи????

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

1 ответ

Решение

Плохо Плохо неверно истолковано название вопроса - Длинный день. Командная директива, которую вы ищете, такова:

JkMountFile

Вы бы поместили эту директиву в ваш httpd.conf (или в отдельный mod_jk.conf в зависимости от того, как вы настроили)

Из документации по apache

Файл, содержащий несколько сопоставлений из контекста для работника Tomcat. Обычно это называется uriworkermap.properties. Правила наследования см.: JkMountCopy. Там нет значения по умолчанию.


Я оставлю это здесь на случай, если кому-то будет интересно.

Итак, так как у вас есть файл worker.properties, вы, вероятно, используете mod_jk (который не рекомендуется для mod_proxy_ajp*). working.properties на самом деле являются частью конфигурации mod_jk.

Да, документация для mod_jk довольно легкая. Поэтому я просто покажу вам мою производственную конфигурацию в качестве примера - вам, возможно, придется немного ее изменить, когда мы запускаем *nix-блоки, но концепции те же.

  1. У вашего httpd.conf должно быть что-то похожее на это: это говорит apache включить отдельный файл конфигурации mod_jk (вы можете поместить эти директивы прямо в httpd.conf, но... мне нравится модульность). Затем настройте псевдоним и точку монтирования для ваших файлов JSP.

    Include <path_to_mod_jk.conf>
    <VirtualHost *:80>
    JkAutoAlias /usr/tomcat/webapps
    JkMount /<your_webapp>/*.jsp <your_worker>
    
  2. Ваш mod_jk.conf должен выглядеть примерно так:

Здесь вы устанавливаете все свои общие настройки mod_jk для apache, logs, works file и т. Д.

    #MOD_JK Config File
    JkWorkersFile <path_to_your_workers.properties>
    JkLogFile /var/log/httpd/mod_jk.log
    JkLogLevel error
    JkShmFile /var/run/mod_jk.shm

3. И, наконец, у вас должен быть файл works.properties, аналогичный следующему: Наконец, мы добрались до сути конфигурации. Здесь вы настраиваете рабочий. варианты довольно очевидны.

    worker.<your_worker_name>.type=ajp13
    worker.list=<your_worker_name>
    #Worker Config
    worker.<your_worker_name>.host=127.0.0.1
    worker.<your_worker_name>.port=8009
  • И да, я все еще запускаю это в производстве, хотя мы начинаем проект модернизации, который, вероятно, увидит конец mod_jk и переход на mod_proxy_ajp
Другие вопросы по тегам