1

Я установил перенаправление на своем виртуальном хосте Apache, обслуживающем несколько поддоменов - назовите их a.example.com и b.example.com - обслуживая приложение ruby on rails.

В моем конфигурационном файле virtualhost у меня есть это правило:

rewriteEngine on
rewriteRule proxy/(.+)$ http://news.example.com/$1 [P]

Идея состоит в том, что я могу сделать http://a.example.com/proxy/news/a и получить содержимое http://news.example.com/news/a , но в пределах одного и того же субдомена, поэтому ajax не Не думаю, что мои запросы Ajax являются междоменными - больше информации по этому вопросу.

Проблема в том, что, хотя он отлично работает в моей рабочей среде, он не работает на производстве!

Оба сервера являются сервером Ubuntu 10.04. Apache пришел из стандартных репозиториев Ubuntu, используя apt-get install .

Я сделал diff для всего /etc /apache2 / dir, и единственное отличие - это имя сервера.

Если я изменю последний параметр на [L], я получу перенаправление, так что это заставляет меня думать, что mod_rewrite работает. Это просто не общается с mod_proxy.

Глядя на журналы (/var/log/apache2 и журнал rails), кажется, что правило перезаписи в производственной среде просто игнорируется - журналы точно такие же, как если бы его там не было.

Как я могу отладить это? Могу ли я заставить Apache предоставить мне больше информации о том, почему это конкретное правило не применяется при доступе к /proxy?

1 ответ1

0

Я только что понял, что это не то место, чтобы задавать подобные вопросы.

Я перенесу этот вопрос на serverfault и отмечу этот ответ как "правильный", как только мне позволят. Если вы собираетесь ответить на этот вопрос, пожалуйста, сделайте это здесь:

https://serverfault.com/questions/364471/apache-mod-rewrite-mod-proxy-working-in-staging-not-working-in-production

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .