我试图理解如何在ruby / rack(或者更理想的是,现有框架)之上构建一个应用程序来管理与wordpress等效的东西.具体而言,能够从相同的代码库服务多个站点,每个站点都有自己的功能和配置.
例如,假设:
> example.com使用auth,pages,blog模块
> forum.example.com – > auth,论坛模块
> api.example.com – > auth,api模块
这个测试用例似乎有效,包括在生产环境中:
# test.rb class Foo end # config.ru require 'rack' use Rack::ShowExceptions use Rack::CommonLogger run lambda { |env| case env['HTTP_HOST'] when /^test\./ require './test' # answers true,regardless of subdomain loaded first [200,{'Content-Type'=>'text/plain'},"#{Kernel.const_defined? :Foo}"] else # answers false,"#{Kernel.const_defined? :Foo}"] end }
然而,到目前为止,我们大部分都在几乎没有任何状态的环境中工作过,我有点紧张,这可能会回来并咬住我的道路.
无论如何,我错过了什么/我应该在哪里回来咬我? (由于文件重新加载而导致的性能?如果合适,需要重新初始化的数据库连接池?会话在不同域之间无效共享?除了明显的事实,任何缓存作为静态文件都是不合适的.)
并且,是否有任何应用程序允许开箱即用?
(我对Rails的初步印象是它不适合这样的用例.也许是错误的.我遇到的唯一多站点插件是允许example.com/site1,example.com / site2等)
这两个主题是我担心的例子:
> https://stackoverflow.com/questions/5823125/rails-multi-tenant-resource-loading
> Rails – Multi tenant application with customization framework