вспомогательный ajp работник не работает между apache и tomcat - PullRequest
3 голосов
/ 26 октября 2011

У меня это работало месяцами, но у меня сегодня был цикл питания, и что-то сломалось.Извините, это немного подробно и конкретно, но я отчаянно нуждаюсь в помощи.

У меня есть apache-2.2 и два сервера tomcat-6 (просто запущенные из двух отдельных папок).У меня нет никаких http-коннекторов, но у меня есть один ajp-коннектор, работающий на каждом сервере на портах 8009 и 8010. При запуске оба tomcats сообщают, что коннектор работает, и не возникает никаких проблем:

INFO: JK: ajp13 listening on /0.0.0.0:8009
...
INFO: JK: ajp13 listening on /0.0.0.0:8010

Я вполне уверен, что у меня правильно настроены рабочие параметры и конфигурация apache.Я могу связаться с коннектором на 8009 нормально, никаких проблем вообще, но при попытке 8010 apache выдает мне 503. Проверяя журнал (mod_jk.log), он говорит:

jk_open_socket::jk_connect.c (594): connect to 127.0.0.1:8010 failed (errno=13)
ajp_connect_to_endpoint::jk_ajp_common.c (922): Failed opening socket to (127.0.0.1:8010) (errno=13)
ajp_send_request::jk_ajp_common.c (1507): (eis) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=13)

Но что я могу 'Я не понимаю, если я делаю простой telnet к этому порту и отправляю GET:

# telnet 127.0.0.1 8010
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET
Connection closed by foreign host.

Он попадает в правильного кота (ожидается ошибка):

Oct 25, 2011 6:17:10 PM org.apache.jk.common.MsgAjp processHeader
SEVERE: BAD packet signature 18245
Oct 25, 2011 6:17:10 PM org.apache.jk.common.ChannelSocket processConnection
SEVERE: Error, processing connection

Так почемуне достичь Apache?Телнет работает, будь я супер пользователь или нет.Что может происходить?Я полностью в замешательстве.

И я попытался перезапустить Apache и Tomcat, и ничего не изменилось.Спасибо, что взглянули.

EDIT-1: Быстрое обновление этого ... Я добавил http-коннектор, и он работает нормально, но коннектор ajp все еще не работает.

EDIT-2:Вот подробности конфигурации для каждого запроса ...

worker.properties:

worker.list=service1,service2

worker.service1.type=ajp13
worker.service1.host=127.0.0.1
worker.service1.port=8009

worker.service2.type=ajp13
worker.service2.host=127.0.0.1
worker.service2.port=8010

httpd.conf (я вижу и jkmount, и JkMount ... имеет значение caps?):

JkMount /s1 service1
JkMount /s1/* service1

JkMount /s2 service2
JkMount /s2/* service2

server.xml для service1:

<Connector port="8009" protocol="AJP/1.3" />

server.xml для service2:

<Connector port="8010" protocol="AJP/1.3" />

Я думаю, что это так.

Ответы [ 2 ]

5 голосов
/ 21 декабря 2011

У вас есть SELinux в системе?Можете ли вы попробовать:

setenforce 0

Это может помешать подключению процесса apache.Также проверьте правила брандмауэра ...

0 голосов
/ 23 апреля 2013

По умолчанию 8009 открывается selinux, вы можете открыть больше портов для использования.

[goalin @ centos63 logs] $ sudo semanage port -l |grep 8009

http_port_t tcp 80, 443, 488, 8008, 8009, 8443

[журналы goalin @ centos63] $ порт sudo-semanage -a -t http_port_t -p tcp 18009

[goalin @ centos63 logs] $ порт sumanage для порта -a -t http_port_t -p tcp 28009

[login @ centos63 logs] $ порт для semanage sudo -l |grep 8009

http_port_t tcp 28009, 18009, 80, 443, 488, 8008, 8009, 8443

[goalin @ centos63 logs] $

...