部署rails应用程序时要做的大事

时间:2008-09-19 11:53:14

标签: ruby-on-rails deployment

在问题What little things do I need to do before deploying a rails application中,我得到了许多比“小事”更大的答案。所以这个问题略有不同。

在部署rails应用程序之前,我需要采取哪些合理的主要步骤。在这种情况下,我的意思是需要超过5分钟,所以需要安排。对于小的oneline配置更改,请使用小问题。

3 个答案:

答案 0 :(得分:11)

设置Capistrano以进行部署如果您还不知道,则需要学习capistrano,并使用它以自动方式部署代码。这将涉及设置共享目录和共享资源,如database.yml。

安装基于C的MySQL gem 如果您没有所有必需的库,这可能需要一段时间,但不到20分钟。

确保您不会受到常见Web应用程序攻击的攻击会话固定,会话劫持,跨站点脚本,SQL注入(可能您不必担心SQL注入)。在视图屏幕中输出用户输入的数据时,请务必使用h()。网上有很多关于此的好材料。

选择服务器架构 Nginx,Mongrel,FastCGI,CGI,Apache,Passenger:有很多可供选择。考虑如何使用您的应用程序并决定最佳架构,然后进行设置。

设置异常通知程序或异常记录程序您希望应用程序在发生故障时向您发出警告。设置其中一个工具以跟踪生产异常。注意:异常通知程序会在发生路由错误时向您发出警告(即,当人们使用胖手指网址或脚本小子攻击您时):因此,请考虑框架在发生错误时要执行的操作并进行相应调整。

确保所有密码都不受源代码管理如果您有源控件中的database.yml,mail.yml(如果使用yaml_mail_config)或其他敏感文件,请将它们从那里取出,将它们替换为database.yml.example,并将它们放在服务器上的shared /文件夹中。

确保您的数据库已被锁定。许多人在设置新的生产Rails框时忘记保护MySQL。不要像他们一样。

确保所有小型网络文件都已到位如果您计划在Google中列出,请生成 sitemap.xml 文件。如果您打算使用。 htaccess 文件,请确保它在那里。如果您需要 robots.txt 文件来阻止您网站的某些区域被编入索引,请创建一个。如果你想要一个好看的 404 Page ,请确保它设置正确。如果您希望在部署时出现“Be Right Back”页面,请确保指定了Capistrano维护文件,并且Nginx或Apache知道如何以及何时重定向到它。

准备好您的SSL Certs 如果您要使用SSL,请确保获得在您的生产域上有效的证书并进行设置。

答案 1 :(得分:3)

使用某些流程监控

有时候你的流程(很多情况下是混杂的)会死掉,或者其他坏事会发生在他们身上。例如,内存泄漏可能导致内存消耗无限增加,或者进程可能开始使用所有CPU。

monitgod都是避免这种命运的好选择。它们也可以设置为访问您网站上的网址以检查200响应代码。

设置服务器监控

此空间中的一些建议:fiverunsnewrelicscout

这些工具将在您的服务器上记录详细的指标,并在出现问题时非常宝贵,您需要查看实际发生的情况。它们还为您提供有关服务器负载的实时信息。

如果你有一个集群,这种报告就更为重要。

备份

编写脚本以定期备份数据库以及用户可以上载的任何其他资产。 S3可能是一个不错的选择。

答案 2 :(得分:1)

选择Web服务器/负载均衡器

我首选的服务器是nginx,但常见的模式是从apache + mod_proxy_http开始。