Articles of 虚拟机

Node.js教程触发所有App引擎VM实例

我遵循这里概述的教程: https : //cloud.google.com/nodejs/getting-started/hello-world 与app.js : 'use strict'; var express = require('express'); var app = express(); // [START hello_world] // Say hello! app.get('/', function(req, res) { res.status(200).send('Hello, world!'); }); // [END hello_world] if (module === require.main) { // [START server] // Start the server var server = app.listen(process.env.PORT || 8080, function () { var host […]

使用VM模块运行Node.js脚本:“ReferenceError:require不是函数”

我正在编写我自己的自定义node.js服务器。 它现在处理静态页面,AJAX GET,POST和OPTIONS请求(后者用于CORS),但是我知道我select用于运行服务器端GET和POST脚本的方法并不是最优的 – 官方node.js文档指出,启动大量的子Node.js过程是一个坏主意,因为这是一个资源饥饿的方法。 它工作,但我知道,可能有更好的方法来达到相同的结果。 所以,我下了VM模块。 我首先想到的是,这将解决使用subprocess混淆机器的问题,并使我的服务器更具可扩展性。 有一个小问题。 我的服务器端脚本,用于目录列表和将结果发送回浏览器等任务,从几个require语句开始加载所需的模块。 最后编写代码来读取脚本文件,并将其传递给vm.Script(),我现在遇到一个错误: “ReferenceError:要求不是一个函数” 我从那里得知,其原因是VM为脚本启动了一个纯粹的V8执行环境,而不是一个独立的node.js执行环境。 为了使我的想法有效,我需要VM为我提供一个单独的,沙箱化的node.js执行环境。 我如何做到这一点? 我的初步研究告诉我,我需要为虚拟机执行环境提供自己独立的node.js全局副本,以便按照预期的方式执行function。 我的理解是否正确? 如果是这样,我需要采取哪些步骤来执行此任务?

使用Node SDK从图像创buildazure色虚拟机

我正尝试使用azure sdk( azure-sdk-for-node )创build一个基于我已经保存的映像的虚拟机。 我也已经创build了这个服务。 这是我得到的: // Create a virtual machine in the cloud service. computeManagementClient.virtualMachines.createDeployment('prerender-pro', { name: "prerender-pro", deploymentSlot: "Production", label: "for heavy duty caching", roles: [{ roleName: "prerender-pro", roleType: "PersistentVMRole", label: "for heavy duty caching", oSVirtualHardDisk: { sourceImageName: "prerender-os-2014-07-16", mediaLink: "https://XXXXXXX.blob.core.windows.net/vhds/prerender-os-2014-07-16.vhd" }, dataVirtualHardDisks: [], configurationSets: [{ configurationSetType: "LinuxProvisioningConfiguration", adminUserName: "Blah", adminPassword: "Blahblah2014!", computerName: […]

如果BrowserSync通过访客虚拟机执行,可以重新加载主机浏览器吗?

我有一个Ubuntu 14.04主机和通过虚拟盒Vagrant Ubuntu 14.04服务器虚拟机。 我想在VM上保留像NPM这样的开发工具。 其中一个工具是BrowserSync 。 如果BrowserSync通过guest虚拟机正在执行,它可以重新加载主机浏览器吗? https://github.com/shakyShane/browser-sync/issues/318

Docker – Node.js + MongoDB – “错误:无法连接到”

我正在尝试为我的Node应用程序创build一个容器。 这个应用程序使用MongoDB来确保一些数据持久性。 所以我创build了这个Dockerfile : FROM ubuntu:latest # — Installing MongoDB # Add 10gen official apt source to the sources list RUN apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0CEB10 RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list # Hack for initctl not being available in Ubuntu RUN dpkg-divert –local –rename –add /sbin/initctl RUN ln -s /bin/true […]

使用虚拟机执行不可信代码时NodeJS内存泄漏

我正在使用NodeJS VM模块安全地运行不受信任的代码。 我注意到一个巨大的内存泄漏,每次执行需要大约10M的内存,并没有释放它。 最终,我的节点进程最终使用了500M以上的内存。 经过一番挖掘,我将问题追溯到不断创build的虚拟机。 为了testing我的理论,我注释了创build虚拟机的代码。 果然,内存使用量急剧下降。 然后,我再次取消注释代码,并将global.gc()调用放在问题区域周围,并使用 – expose-gc标志运行节点。 这大大减less了我的内存使用,并保留了function。 在完成使用之后,有没有更好的清理虚拟机的方法? 我的下一个方法是caching包含给定的不安全代码的虚拟机,如果我再次看到不安全的代码,则重用它(背景:我让用户为文本块编写自己的parsing函数,因此不安全的代码会频繁执行或执行一次,从来没有见过)。 一些参考代码。 async.each(items,function(i,cb){ // Initialize context… var context = vm.createContext(init); // Execute untrusted code var captured = vm.runInContext(parse, context); // This dramatically improves the usage, but isn't // part of the standard API // global.gc(); // Return Result via a callback cb(null,captured); });

通过虚拟机上的localhost:port访问node.js / grunt服务器

我通过Grunt在端口9000上本地运行node.js服务器。 我也有一台运行(vmware)的虚拟机,但是我无法通过它来访问节点服务器。 我已经configuration虚拟机通过本地主机访问主机上的Apache服务器,但是:9000给出“未find”。 有人知道怎么做吗?