2010-02-03 49 views
3

我想在/awww.myserver.com的子目录中部署应用程序,按照乘客文档这里的步骤: http://www.modrails.com/documentation/Users%20guide.html#deploying_rails_to_sub_uri客运+ nginx的:在一个子目录托管Rails应用程序

这似乎是工作,但Rails路由现在都在等待额外的子目录/a,因此尝试访问根www.myserver.com/a会给我一个RoutingError。我试过设置relative_url_root,但这并没有改变。我需要在我的路线文件中为每条路线添加前缀/a吗?

+0

我知道,我知道,这是基本的,但你加入 'relative_url_root' 重启后nginx的? – wesgarrison 2010-02-03 02:08:18

+0

btelles的指令确实有效:最终,问题是由gem'reverse_proxy_fix'和Rails之间的不希望的交互引起的。 – jogloran 2010-02-19 06:04:04

回答

3

嗯...所有似乎对我工作得很好。刚刚尝试过。

您确定您已按照Nginx指令而不是Apache指令吗?

确保你做的软链接并更改“根”的应用程序...说明说,以使其成为绝对路径去掉“公”部分:

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

+4

如果我理解他的问题,他希望在根应用程序下有一个rails应用程序不会更改路径根应用程序添加多余的目录名称。例如,如果您想在www.myhost.com上托管几个不同的应用程序,如www.myhost.com/app1 www.myhost.com/app2 www.myhost.com/app3,它们都是不同的Rails应用程序。您的答案没有解决这个问题,而是不必要地向根网址添加额外的路径。 – 2010-09-10 02:54:59

相关问题