Настройка приложений Apache для Rails под Torquebox

У меня проблемы с работой Apache и Torquebox/JBoss.

Версии:

  • Apache 2.2.15
  • Torquebox 2.3.0
  • Рельсы 2.3.18 и 3.2.13

Все приложения развертываются и работают правильно, проходя напрямую через Torquebox. Я использую смещение порта 100 с портами по умолчанию в Torquebox, так что это означает, что приложение доступно на myserver:8180/my-app.

Вот конфигурация для моего сайта по умолчанию:

<VirtualHost *:80>
  ServerAdmin myemail@my.domain

  DocumentRoot /var/www/html
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  <Directory /var/www/html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

  ErrorLog /var/log/httpd/error.log

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn

  CustomLog /var/log/httpd/access.log combined
  ServerSignature On
</VirtualHost>

Каждое отдельное приложение получает свой собственный файл конфигурации Apache со строкой, подобной следующей:

ProxyPass /my-app ajp://localhost:8109/my-app

Однако, когда я пытаюсь получить доступ к приложениям, я получаю сообщение об ошибке Forbidden (403):

You don't have permission to access /my-app/ on this server.

Apache генерирует следующее в своем error.log для каждого ошибочного запроса:

[Wed Apr 24 07:37:03 2013] [error] [client #{ip address}] client denied by server configuration: proxy:ajp://localhost:8109/my-app/

Журналы Torquebox не имеют соответствующей записи, поэтому я считаю, что запрос никогда не поступает в Torquebox.

Через консоль управления я проверил, что AJP действительно включен для Torquebox/JBoss. Я также проверил права доступа к файлам в системе - у пользователя Apache есть права на чтение всех его файлов конфигурации и всех папок приложения. Насколько я могу судить, сама конфигурация Apache соответствует тому, что правильно работает на другом сервере.

Есть идеи, что мне не хватает?

1 ответ

Решение

Прокси не был настроен правильно. Добавление этого файла.conf решило проблему:

<IfModule mod_proxy.c>

  ProxyRequests Off

  <Proxy *>
    AddDefaultCharset off
    Order allow,deny
    Allow from all
  </Proxy>

  ProxyVia On

  ProxyPreserveHost On

</IfModule>
Другие вопросы по тегам