node.js - 当我启动基于 node.js 的站点时,是否有 list ?

标签 node.js deployment express

我正在使用 node.js 构建我的第一个站点,我很好奇是否有一个检查列表来列出我在启动之前应该完成的所有事情。在开发过程中,当我的数据库调用中不期望某些值时(使用 Mongoose),我的网站就会死掉(例如 Node 段错误)。

我还将在我的 VPS 上使用它,该 VPS 已经安装了 Apache,那么我是否能够同时运行两者,或者我是否需要为此研究其他东西?

基本上一旦启动,我就想保持它,并且我想知道在这样做之前我应该​​知道的任何标准预防措施。

谢谢!

最佳答案

我目前处于类似情况(即将在私有(private) 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 ),但我已经使用 forever 一段时间了,从来没有遇到任何问题。

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

4- 如果你使用 forever,你可以使用 Monit 监控它的状态.查看this blog post进行基本设置。

5- 如果您使用的是 Mongo,请考虑制定数据备份策略。此页面是 very good starting point .


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

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

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

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

而且,因为我们都喜欢听一个好故事,这里有一些关于 nodejs/mongodb 在生产中的使用和经验教训的帖子:
1- Lessons learned from launching i.TV
2- Using Mongodb for 2+ billion documents on craigslist

关于node.js - 当我启动基于 node.js 的站点时,是否有 list ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17008805/

相关文章:

node.js - 命中 Express 端点后在 socket.io 中发出

node.js - 在 Koa 中返回 JSON

node.js - 我可以在 'npm install' 中设置 npm 使用的编译库路径吗?

node.js - 无法在 setTimeout 中将流发送到服务器

mysql - Heroku 部署失败 MySQL rake 中止同一文件

node.js - 使用 Express Post 请求处理数组

node.js - 连接角色 : Define User Roles on Login and User. 是函数

node.js - 如何定义 GruntJS 服务的内容?

javascript - 为 Javascript 制作文件

javascript - 如何在 Express [MEAN] 中发送 header