4

I'm finishing up building my first site with node.js and I'm curious if there is a checkoff list for all the things that I should complete before I get it up. In development when certain values are not expected in my database calls, (using Mongoose), my site will just die (e.g. node segfaults).

I'll also be using this on a VPS of mine that already have Apache installed on it, so will I be able to run both or do I need to look into something else for that?

Basically once it's up, I want to keep it up, and I'd like to know of any standard precautions I should know of before doing so.

Thanks!

4

2 回答 2

4

我目前处于类似情况(即将在私有 VPS 上部署我的第一个应用程序),这是我想出的列表:

1- 错误记录:我在这里使用了一个简单的WriteStream,没什么花哨的。

var fs = require('fs');
//You might want to specify a path outside your app
var file = './log.log';
var logger = fs.createWriteStream('./log.log');
app.configure(function(){
    //...
    app.set(express.logger({stream:logger}));
    /...
});

2- 使用Forever确保您的脚本将连续运行。是的,它们有很多其他解决方案(例如,使用daemon),但我已经使用了一段时间了,从来没有遇到过任何问题。

3-考虑设置一个管理界面。这实际上是我的要求,所以我继续使用smog,它看起来非常好,尤其是对于您的客户:)。

4-如果您永远使用,您可以使用Monit监控其状态。查看此博客文章了解基本设置。

5- 如果您使用的是 Mongo,请考虑制定数据备份策略。这个页面是一个很好的起点


请注意,此列表不包含有关多应用程序、多机或多核支持的任何信息。

如果您对多应用程序支持感兴趣,那么 nginx 似乎是一个值得信赖的解决方案。这个(精彩的)SO答案将帮助您进行设置。

如果您有许多备用机器要使用,node-http-proxy是由 nodejitsu 开发的,它允许您只暴露一台机器并反向代理其余机器。

如果您正在寻找多核支持,集群与节点捆绑在一起,因此您可以生成 N 个不同的进程(N 是您拥有的核心数)并让它们监听共享端口。

而且,由于我们都喜欢听一个好故事,这里有几篇关于 nodejs/mongodb 在生产中的使用和经验教训的帖子:
1-从启动 i.TV 中学到
的经验教训 2-在 craigslist 上使用 Mongodb 处理超过 2 亿个文档

于 2013-06-09T12:53:03.567 回答
1

鉴于 Node.js 不是像 Apache 或 IIS 这样的 Web 服务器,因此没有要遵循的配置设置清单。此外,鉴于您使用的模块和/或框架可能会因您正在创建的项目而有很大差异,清单总是会遗漏一些东西……尤其是随着 Node.js 生态系统的不断发展和发展。

因此,我建议在这里查看材料,因为它们回答了您的问题,并且无论您使用 Node.js 做什么,它们通常都很有用:

我担心您的应用程序会“在我的数据库调用中不期望某些值时”死掉。

Mongoose 是一个不错的工具,因为它允许对单个字段进行自定义数据验证,可以过滤掉不适合您定义的 Schema 的数据(保持文档一致),并且使用正确的设置可以在存在 '错误数据'传递给它,而不是将错误数据发送到数据库,等等......

我想知道你在做什么,一个未处理的错误使它通过 Mongoose通过任何回调函数,知道回调通常采用格式function(err, data)并提供立即处理错误的机会。

于 2013-06-09T12:36:16.263 回答