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

时间:2020-03-06 14:25:37  来源:igfitidea点击:

在这个问题中,在部署Rails应用程序之前我需要做些什么?我得到的答案比"小事情"要大。因此,这个问题完全不同。

部署Rails应用程序之前,我需要采取哪些合理的主要步骤。在这种情况下,我的意思是事情将花费超过5分钟,因此需要安排时间。对于较小的oneline配置更改,请使用小东西问题。

解决方案

使用一些过程监控

有时,过程(在许多情况下为混乱)会死掉,或者会发生其他不良情况。例如,内存泄漏可能会导致内存消耗无限期增加,或者某个进程可能开始使用所有CPU。

monit和God都是使我们摆脱命运的好选择。也可以将它们设置为在网站上点击一个网址,以检查200个响应代码。

设置服务器监控

该空间的一些建议:Fiveruns,newrelic,scout

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

如果我们有集群,则这种报告就显得尤为重要。

后备

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

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

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

设置Capistrano进行部署如果我们尚不了解Capistrano,则需要学习它,并使用它以自动化的方式来部署代码。这将涉及设置共享目录和共享资源,如database.yml。

安装基于C的MySQL gem如果我们没有所有必需的库,这可能会花费一些时间,但不到20分钟。

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

选择服务器体系结构Nginx,Mongrel,FastCGI,CGI,Apache,Passenger:有很多选择。考虑如何使用应用,并确定最佳架构,然后进行设置。

设置异常通知程序或者异常记录器我们将希望应用在中断时发出警告。设置这些工具之一以跟踪生产异常。注意:发生路由错误时(即当人们用胖手指的URL或者脚本小子攻击我们时),异常通知程序会警告我们:因此,请考虑一下我们希望框架在发生这种情况时应采取的措施,并进行相应的调整。

确保所有密码均不在源代码管理范围内。如果源代码管理中包含database.yml,mail.yml(如果使用yaml_mail_config)或者其他敏感文件,请将其删除,将其替换为database.yml.example,并将它们放在服务器上的shared /文件夹中。

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

确保所有小的网络文件都在适当的位置。如果打算在Google中列出这些文件,请生成一个sitemap.xml文件。如果我们打算将.htaccess文件用于某些内容,请确保该文件位于其中。如果我们需要robots.txt文件来阻止对网站的某些区域建立索引,请创建一个。如果我们想要一个漂亮的404页面,请确保其设置正确。如果我们希望在部署时显示"向后退"页面,请确保指定了Capistrano维护文件,并且Nginx或者Apache知道如何以及何时重定向到该文件。

放置SSL证书如果要使用SSL,请确保获取在生产域中有效的证书并进行设置。