我用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")
)
)
)
}
$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")
)
)
)
}
$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")
)
)
)
}
}
我试了一下,配置起来确实要改的地方不只一处,我已经写好了方案,在知识库里面,看上面的链接。
alias的配置无论如何都不会导致启动失败。换句话说,你启动失败的原因不在alias的配置上,至于是什么,我不知道,你要自己去找。
你的问题是要在同一个虚拟域下面的不同子目录下面配置不同的rails实例。所以要根据URL配置来进行设置,例如:
[code="c"]$HTTP["host"] == "......" {
$HTTP["url"] =~ "^/en" {
alias.url....
fastcgi.server ...
}
$HTTP["url"] =~ "^/zh" {
alias.url....
fastcgi.server ....
}
}[/code]