Passenger + nginx:在子目录中托管Rails应用程序

时间:2010-02-03 01:55:03

标签: ruby-on-rails nginx passenger subdirectory

我正在尝试在/a下的子目录www.myserver.com中部署应用程序,遵循此处Passenger文档中的步骤: http://www.modrails.com/documentation/Users%20guide.html#deploying_rails_to_sub_uri

这似乎有效,但Rails路由现在都期待额外的子目录/a,因此尝试访问根www.myserver.com/a会给我一个RoutingError。我已经尝试设置relative_url_root,但这没有任何改变。我是否需要在路由文件的每个路由中添加前缀/a

1 个答案:

答案 0 :(得分:3)

嗯......好像对我来说都很好。刚试了一下。

您确定是否遵循 Nginx 说明而不是 Apache 说明?

确保你做了软链接并更改了'root'应用程序...说明说它是绝对路径减去'public'部分:

http {     ...

server {
    listen 80;
    server_name g.local;
    root /home/bernie/development/test;  <- forgot to change this the first time I tried
    passenger_enabled on;   
    passenger_base_uri /rails; 
}

...

}

这是最终结果的图像......无需修改路径:

alt text http://img190.imageshack.us/img190/8898/32380822.png

以下是Nginx说明:

http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_rails_to_sub_uri