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

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]

    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 div editable中的光标问题
  • ¥15 mysql报错1415Not allowed to return a result set from a trigger 不知如何修改
  • ¥60 Python输出Excel数据整理,算法较为复杂
  • ¥15 看一下这个,可以商量
  • ¥15 回答几个问题 关于数据库
  • ¥15 51单片机串口通信问题,未完成且要修改
  • ¥15 百鸡问题 c++编程问题(相关搜索:输出数据)
  • ¥30 如何在CMD中设置代理
  • ¥15 我有一块薛定谔的硬盘
  • ¥15 微信小游戏开发2D碰撞检测问题