apache将subdir代理到rails app

时间:2011-06-29 04:47:01

标签: apache proxy passenger config subdirectory

我想在我的域名下的子目录中运行rails应用程序(实际上是redmine)。像http://foobar.com/redmine这样的东西。 Redmine作为一个独立的乘客实例运行,我想代理请求。

passenger start -a 127.0.0.1 -p 8000 -e production

如果我从服务器本地访问该应用程序,我可以确认该应用程序正在运行。

lynx http://127.0.0.1:8000/

现在我无法弄清楚如何让Apache正确地提供应用程序。这就是我所拥有的,但它不能正常工作:

Alias /redmine /home/redmine/www/redmine-1.2/public
<Directory /home/redmine/www/redmine-1.2/public>
  allow from all
  ProxyPass http://127.0.0.1:8000
  ProxyPassReverse http://127.0.0.1:8000
</Directory>

它从公用文件夹中提供了很好的静态资产,但似乎没有正确地代理请求。一切都返回403. Apache日志:

client denied by server configuration: proxy:http://127.0.0.1:8000

1 个答案:

答案 0 :(得分:2)

想出来。 Apache配置:

<Location /redmine>
  Order deny,allow
  Allow from all
  ProxyPass http://127.0.0.1:8000
  ProxyPassReverse http://127.0.0.1:8000
</Location>

然后将此行添加到config / environment.rb:

config.action_controller.relative_url_root = "/redmine"