在Torquebox下配置Apache for Rails应用程序

时间:2013-04-24 14:48:09

标签: ruby-on-rails apache jboss torquebox

我无法让Apache和Torquebox / JBoss一起工作。

版本:

  • Apache 2.2.15
  • Torquebox 2.3.0
  • Rails 2.3.18和3.2.13

所有应用程序都可以直接通过Torquebox进行部署和正常工作。我在Torquebox中使用默认端口100的端口偏移量,这意味着应用程序在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 个答案:

答案 0 :(得分:0)

未正确配置代理。添加此.conf文件修复了问题:

<IfModule mod_proxy.c>

  ProxyRequests Off

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

  ProxyVia On

  ProxyPreserveHost On

</IfModule>