Articles of 生产

node.js生产设置

我在node.js中为windows创build了一个小应用程序, 我遵循了一些指导和技巧,我下载了“configuration”和“跨环境”软件包。 我将这部分添加到我的package.json中 – "scripts": { "start": "cross-env SET NODE_ENV=development& nodemon server.js", "qa": "cross-env SET NODE_ENV=qa& nodemon server.js", "prod": "cross-env SET NODE_ENV=production& nodemon server.js" } 我还在configuration文件夹default.json,production.json和qa.json下添加了3个json文件。 我打算使用configuration包的一个例子是: var config = require('config'); var connectionString = config.get('connectionString'); 现在我扫描了很多关于解决scheme的post,但是目前为止我没有看到任何帮助,当我尝试运行"npm prod"或"npm qa"时,我收到以下消息: F:\MeanApp>npm prod Usage: npm <command> where <command> is one of: access, adduser, bin, bugs, c, cache, completion, […]

node.js config npm – NODE_CONFIG_ENV

我正在尝试使用configuration软件包(npm install config)来为不同的环境使用不同的configuration。 我在Windows 10上运行它。 我在configuration文件夹下有4个文件:default.json,development.json,production.json和qa.json。 当我运行SET NODE_ENV=production例如适用于它,但config仍然不从正确的文件的信息。 var config = require('config'); var port = config.get('appPort'); 我做了一些阅读,我发现了另一个值 – NODE_CONFIG_ENV 。 我做了一些testing: console.log('NODE_CONFIG_ENV: ' + config.util.getEnv('NODE_CONFIG_ENV')); console.log('NODE_ENV: ' + config.util.getEnv('NODE_ENV')); 看来, NODE_CONFIG_ENV是负责的问题,因为它似乎config使用它,而不是决定select哪个文件。 我的问题是我怎样才能使config再次使用NODE_ENV ? 或者,如果不可能,我该如何设置NODE_CONFIG_ENV呢?

适用于所有环境(包括生产)的node.js docker映像

目前我们正在使用节点:4.2.3(LTS)docker图像,大小约为642 MB,node_modules约为140 MB〜800MB,以构build我们的Web应用程序泊坞窗图像。 将这些图像发布到我们的私人registry中,并将它们拉到所有环境中成为一个耗时的过 因为我们不能减lessnode_modules的大小(如果有任何的reduce方法是有用的),寻找build议来使用任何其他节点的docker镜像,包括生产环境。

PM2生产优化

我只是尝试在“生产”环境中部署节点应用程序。 我使用这个命令使用PM2来运行应用程序。 pm2 start app.js –name <appname> 我的问题是: 为什么我看child_process我分叉的child_process的console.log ? 可以调用很多child_process.fork吗? 编辑1 基本上,应用程序使用chokidar来观看文件夹。 当有新文件时,它将检查文件types,然后执行以下任一项: 如果文件types是.FLV那么应用程序会将文档添加到mLab中承载的MongoDB集合中。 如果文件types是.PNG则应用程序将使用child_process.fork将文件上载到S3存储桶。 如果文件types是.MP4 ,应用程序将使用child_process.fork将file upload到S3存储桶,然后运行FFmpeg命令生成一个在另一个child_process.fork上运行的屏幕截图,然后触发上面的过程2 ,同时执行MongoDB更新另一个child_process.fork 。 这是代码片段 1. Chokidar Watcher(app.js) 编辑2 为我如何使用chokidar和分支subprocess添加了代码片段。

Rails 3 – 权限错误和奇怪的TypeError

尝试打开我的网页上的VDS,然后得到: We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly. 所以,这里是日志: Started GET "/" for 176.14.194.67 at 2012-01-20 20:39:10 +0300 Processing by PagesController#home as HTML Rendered pages/_unauthorize_home.html.erb (4.0ms) Rendered pages/home.html.erb within layouts/application (36.0ms) Compiled blueprint/screen.css (0ms) (pid 2376) Rendered layouts/_stylesheets.html.erb (16.0ms) Completed 500 Internal […]

使用sudo与ExecStart(systemd)

我试图让端口80上的node.js网站(我正在使用数字海洋)。 我在服务文件中使用systemd来做这个 … ExecStart=/usr/bin/nodejs /var/www/bin/app.js … 在本地主机上,如果我使用sudo来启动站点,但在没有sudo的情况下,这可以在端口80上正常工作。 显然你需要以1024以下的端口为根运行。 如何在ExecStart中允许sudo? 或者我在这里完全错误的方式,如果是这样,我怎么得到80端口的快递应用程序? 干杯,迈克

Elasticsearch部署在2服务器负载均衡节点js应用程序设置中

我有我的节点JS应用程序的以下生产设置: 我现在要在这个设置中集成Elasticsearch。 我的问题是关于在生产环境中部署Elasticsearch的最佳实践。 我所有的实例都是虚拟机,我知道Elasticsearch使用了大量的内存。 因此,我是否应该在自己的服务器(服务器3)上设置Elasticsearch,在服务器1和服务器2上将其设置为群集(非常类似于Mongo数据库副本集),或者将其作为单独的实例安装在每台服务器上。 select的方法有什么好处? 非常感谢!

在生产模式下使用node.js来缩小脚本/ CSS

我有一个在节点中运行的Web应用程序。 所有的(客户端)Javascript / CSS文件目前还没有被缩小,以便于debugging。 当我正在投入生产时,我想简化这些脚本。 有这样的事情会很高兴: node app.js -production 如何在不改变HTML文件中的脚本标记的情况下为我的脚本提供缩小版本? 应该是这样的:如果我在生产中,使用这2个缩小(组合)的脚本,否则使用我所有的未经脚本化的脚本。 这可能吗? 也许我想太复杂了?

如何将meteorjs项目部署到数字海洋?

如何部署MeteorJS项目到数字海洋VPS? CentOS x64 – 对它有好处? 或者我需要设置别的东西?

如何将节点v8参数和脚本parameter passing给pm2?

我需要能够启动pm2下面的应用程序,但不知道如何开始与pm2。 node –expose-gc bin/www arg1 arg2 arg3 我知道–node-args但我认为只适用于–expose-gc。