9

在部署 Rails 应用程序之前我需要做哪些小事情这个问题中,我得到了很多比“小事情”更大的答案。所以这个问题略有不同。

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

4

3 回答 3

11

设置 Capistrano 以进行部署如果您还不了解 Capistrano,您会想学习它,并使用它以自动化的方式部署您的代码。这将涉及设置您的共享目录和共享资源,如 database.yml。

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

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

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

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

Make sure all of your passwords are out of source control If you have database.yml, mail.yml (if you use yaml_mail_config) or other sensitive files in source control, get them out of there, replace them with database.yml.example, and put them in the shared/ folder on your server.

Ensure that your DB is locked down. A lot of people forget to secure MySQL when setting up their new production Rails box. Don't be like them.

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

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

于 2008-09-19T19:51:01.543 回答
3

使用一些过程监控

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

monitgod都是让你摆脱这种命运的好选择。它们也可以设置为点击您网站上的 url 以检查 200 响应代码。

设置服务器监控

这个空间的一些建议:fiveruns , newrelic , scout

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

如果你有一个集群,这种报告就更加关键了。

备份

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

于 2008-09-19T12:02:36.600 回答
1

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

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

于 2008-09-19T13:53:48.983 回答