Маршрутизация запросов от IIS к Jetty с помощью isapi_redirect (соединитель Tomcat)
Я установил isapi_redirect в IIS и позволил ему работать. Я включил ajp13 в Jetty, и я могу telnet к порту 8009. Это мой текущий uiworkermap.properties:
/hudson=jetty
/hudson/*=jetty
Если я сделаю запрос к "http://localhost/hudson" или любому другому подкаталогу, я получу ошибку 404. Все остальные URL возвращают сайт, определенный в IIS. Это говорит мне о том, что isapi_redirect просматривает файл uiworkermap и пытается правильно перенаправить.
В журнале Jetty и в журнале isapi_redirect я не вижу никаких ошибок. Если я захожу на http://localhost:8008/hudson, я вижу это правильно. У вас есть идеи, что может вызвать это?
ОБНОВЛЕНИЕ: я создал виртуальный каталог с именем "Джакарта", который указал на dll isapi_redirect, как сказано здесь: http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html После этого шага ошибка изменилась, сейчас в браузере вижу:
Bad Gateway!
There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.
Jakarta/ISAPI/isapi_redirector/1.2.32 ()
В журнале ошибок (в режиме отладки) я вижу, что он сначала соединяется, и запрос сделан, но от пристани нет ответа, и эта ошибка генерируется:
[ошибка] ajp_get_reply::jk_ajp_common.c (2118): (мол) Tomcat не работает или отказал в соединении. Ни один ответ не был отправлен клиенту (пока)
Это часть журнала с запросом и ошибкой: https://rapidshare.com/files/3999719393/isapi_redirect_log.txt
1 ответ
Хорошо, в конце концов, не имея никакой помощи от пользователей stackru, а также читая это на официальном сайте Jetty о ajp13:
Рекомендуется НЕ использовать протокол AJP, и при использовании HTTP будет достигнута превосходная производительность и более четкая семантика.
Я отказался от ajp и использовал отличный и хорошо документированный dll с открытым исходным кодом, чтобы иметь функции прокси HTTP в IIS, IIRF.
Поэтому я бы предложил всем, у кого есть подобные проблемы, просто использовать вместо этого HTTP-прокси.