我正在用node.js建立我的第一个站点,我很好奇是否有一个我应该完成的所有事情的核对清单.在开发中,当我的数据库调用中不期望某些值时(使用Mongoose),我的站点将会死亡(例如节点段错误).
我也将在已经安装了Apache的VPS上使用它,所以我能够同时运行或者我需要为此寻找其他东西吗?
基本上一旦它上升,我想继续保持,我想知道在这之前我应该知道的任何标准预防措施.
谢谢!
解决方法
我目前处于类似情况(即将在私有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监视其状态.请参阅this blog post以获取基本设置.
5-如果您使用的是Mongo,请考虑制定数据的备份策略.这个页面是very good starting point.
请注意,此列表不包含有关多应用程序,多机器或多核支持的任何信息.
如果多应用程序支持您感兴趣,Nginx似乎是一个值得信赖的解决方案. This (brilliant) SO answer将帮助您进行设置.
如果你有许多备用机器可供使用,node-http-proxy是由nodejitsu开发的,它允许你只暴露一台机器并对其余机器进行反向代理.
如果您正在寻找多核支持,cluster与节点捆绑在一起,因此您可以生成N个不同的进程(N是您拥有的核心数)并让它们监听共享端口.
而且,既然我们都喜欢听一个好听的故事,这里有一些关于nodejs / mongodb在生产中使用的帖子和经验教训:
1- Lessons learned from launching i.TV
2- Using Mongodb for 2+ billion documents on craigslist