mod_proxy_html не настроен должным образом
У меня есть веб-сервер apache2, который обрабатывает обратный прокси-сервер для приложения Rails3, запущенного на другом компьютере.
Установка работает, за исключением того, что URL, сгенерированные в веб-приложении, не переписываются моей конфигурацией для mod_proxy_html.
"Сценарий обратного прокси-сервера" - это именно то, что я пытаюсь сделать, поэтому я следовал этому уроку настолько полно, насколько знаю.
Я применил или попробовал два ответа, представленные здесь и здесь на stackru, безрезультатно.
Согласно "Сценарию обратного прокси-сервера" вы хотите загрузить несколько модулей. Все эти инструкции находятся в моем файле httpd.conf, и когда я проверяю вывод
apactectl -t -D DUMP_MODULES
все ожидаемые модули отображаются в списке.
Мой внешний веб-сервер, который выполняет обратный прокси-сервер, находится по адресу www.ourdomain.org, а приложение Rails доступно внутри apphost.local (сервер Mac OS X Server 10.6, сервер приложений rails - Mac OS X 10.6).
Сейчас работает доступ к веб-приложению через обратный прокси-сервер:
http://www.ourdomain.org/apphost/railsappname/controllername/action
Но ни один из javascript-файлов, css-файлов или других ресурсов не загружается, а внутренние ссылки на веб-приложение выходят без части apphost URL, как будто мое правило перезаписи настроено неправильно (поэтому, конечно, я сосредоточился на этом и, кажется, не может получить что-либо, что будет добавлено или удалено в процессе передачи html из apphost и через сервер Apache).
Вот как выглядят мои директивы Apache:
LoadModule proxy_html_module /usr/libexec/apache2/mod_proxy_html.so
LoadModule xml2enc_module /usr/libexec/apache2/mod_xml2enc.so
ProxyHTMLLogVerbose On
LogLevel Debug
ProxyPass /apphost/ http://apphost.local/
<Location /apphost/>
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyPassReverse /
ProxyHTMLExtended On
ProxyHTMLURLMap railsappname/ apphost/railsappname/
RequestHeader unset Accept-Encoding
</Location>
После каждого изменения, которое я делаю в httpd.conf, я тщательно проверяю apachectl -t, чтобы быть в здравом уме.
Я определенно не эксперт Apache, но все директивы, которые следуют моим, похоже, не отменяют того, что я здесь делаю. Но тогда ничто из того, что я пытаюсь сделать, похоже, не меняет URL-адреса, которые я вижу в своем браузере после обращения к серверу Apache с запросом на мое веб-приложение.
Даже если вы не можете сказать, что я сделал неправильно, я бы приветствовал идеи о том, как настроить Apache, чтобы увидеть, над чем он работает и что делает с html из моего веб-приложения. Это то, что я понял, что ProxyHTMLLogVerbose On и LogLevel Debug настраиваются, но я ничего не вижу в файлах журнала.