我想为Rails应用程序设置一个临时服务器.我使用git和github,Cap,并使用Apache/Passenger的VPS.我对分段设置的最佳实践很感兴趣,就登台服务器的配置以及与之交互的过程而言.我知道它应尽可能与生产服务器完全相同,但限制公众访问它将限制它,因此仅为我的使用保护它的提示也会很棒.
另一个具体问题是我是否可以在VPS上创建虚拟主机,以便登台服务器可以与生产服务器一起驻留.我觉得可能有理由避免这种情况.
便宜又简单的答案:
1)在你的VPS上点staging.domainname.com.
2)添加虚拟主机以进行暂存,指向应用程序的暂存副本.
3)添加暂存环境设置.(你知道你可以在Rails中定义新的环境吗?有趣的东西!)我认为这就像将production.rb复制到staging.rb并根据需要进行调整,以及更新database.yml一样简单.
4)在ActionController中,添加类似于以下内容的代码
if (ENV["RAILS_ENV"] == "staging") before_filter :verifies_admin end
哪里verifies_admin
可以是你想要的任何东西.我建议使用HTTP基本身份验证 - 便宜又简单.
def verifies_admin authenticate_or_request_with_http_basic do |username, password| username == "foo" && password == "bar" end end
请注意,如果他们向您发出入站请求,这可能会使您与该付款网站的连接变得很困难,尽管这很简单(只需关闭适当控制器和/或操作的before_filter).
更好的答案:
1)购买与常规VPS相同的图像配置的第二个VPS,和/或从相同的裸机安装脚本配置(我喜欢Capistrano和Deprec).
2)点staging.domainname.com.
3)否则与其他选项相同.
需要考虑的事情:
1)我是否应该有一个临时数据库?可能,特别是如果您要测试架构更改.
2)我是否应该有一些在分段和生产系统之间移动数据的工具?
3)我的暂存应用程序的灾难性故障是否会破坏主要应用程序?最好希望答案是否定的.