池建强
2008-12-16 13:44
浏览 211
已采纳

Linux上如何使用Lighttpd+FastCGI部署多个Rails应用

我用ruby构建了公司网站的多个应用,包括中文版,英文版,日文版,各个版本内部不同,所以使用了三个Rails应用进行构建,以前是在windows上运行,apache+mongrel,使用了apache的虚拟主机配置



由于性能问题,移植到了linux上,目前主网站英文运行正常,配置如下:

$HTTP["host"] == "10.10.66.37" {
server.document-root = "/www/use_en/public"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (".fcgi" =>
("localhost" =>
("min-procs" => 10,

"max-procs" => 10,

"socket" => "/tmp/lighttpd/socket/rails.socket",
"bin-path" => "/www/use_en/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
}




中文版的root是/www/use_zh/public,我希望通过http://10.10.66.37/zh的方式进行访问,但增加了这样的设置,启动失败

$HTTP["host"] == "10.10.66.37" {
server.document-root = "/www/use_zh/public"
alias.url = ("/zh" => "/www/use_zh/public")
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (".fcgi" =>
("localhost" =>
("min-procs" => 10,

"max-procs" => 10,

"socket" => "/tmp/lighttpd/socket/rails.socket",
"bin-path" => "/www/use_zh/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
}




又在原有的en上增加了alias进行尝试,发现无效

alias.url = ("/en" => "/www/use_en/public")





望robbin指教
问题补充:
我参考了这个帖子

http://www.iteye.com/topic/237444



不过增加了alias.url之后,

alias.url = ("/en" => "/www/use_en/public")

访问:http://10.10.66.37/en,提示找不到页面

能够给一个完成的配置了子目录的例子,包括$HTTP["host"]信息的



另外,在lighttpd下配置多个rails应用,有什么好办法
问题补充:
$HTTP["host"] == "10.10.66.37" {
$HTTP["url"] =~ "^/en" {
server.document-root = "/www/use_en/public"
alias.url = ("/en" => "/www/use_en/public")
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (".fcgi" =>
("localhost" =>
("min-procs" => 10,

"max-procs" => 10,

"socket" => "/tmp/lighttpd/socket/rails.socket",
"bin-path" => "/www/use_en/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
}
}




这样的配置有什么问题

还是没法访问http://10.10.66.37/en/

The page you were looking for doesn't exist.
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • robbin 2008-12-16 15:57
    已采纳

    [url]http://www.iteye.com/wiki/rails_deployment/1299-lighttpd-and-ror-installation-configuration-troubleshooting#1502[/url]

    我试了一下,配置起来确实要改的地方不只一处,我已经写好了方案,在知识库里面,看上面的链接。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • robbin 2008-12-16 13:46

    alias的配置无论如何都不会导致启动失败。换句话说,你启动失败的原因不在alias的配置上,至于是什么,我不知道,你要自己去找。

    评论
    解决 无用
    打赏 举报
  • robbin 2008-12-16 14:02

    你的问题是要在同一个虚拟域下面的不同子目录下面配置不同的rails实例。所以要根据URL配置来进行设置,例如:

    [code="c"]$HTTP["host"] == "......" {
    $HTTP["url"] =~ "^/en" {
    alias.url....
    fastcgi.server ...
    }
    $HTTP["url"] =~ "^/zh" {
    alias.url....
    fastcgi.server ....
    }

    }[/code]

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题