Articles of node.js

什么可能导致strace结果重复mmap / munmap?

我有一个(node.js)应用程序偶尔会导致100%的CPU使用率。 当它处于这种状态时,我使用strace来附加进程 – 但是我不知道如果输出strace,该怎么办。 结果在这两种模式之间重复(缩短): mmap(0x30c3ac700000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x30c3ac700000 mmap(0x3364514ba000, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x3364514ba000 munmap(0x3364514ba000, 286720) = 0 munmap(0x336451600000, 761856) = 0 mmap(0x336451500000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x336451500000 mmap(0x2b9c33880000, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2b9c33880000 munmap(0x2b9c33880000, 524288) = 0 munmap(0x2b9c33a00000, 524288) = 0 … 和… […]

Nginx的limit_req正在查杀所有的请求

我有一个网站上运行node.js和expressionnetworking服务器。 我使用nginx在域上运行网站,也使用SSL证书。 我search谷歌如何保护服务器使用nginx的ddos攻击,我发现我应该在我的nginx conf文件中使用limit_req属性。 但是当我使用这个,我打开网站所有其他请求失败,我的意思是我打开网站和所有外部链接失败像CSS,JS和图像文件,并在我的控制台,我看到很多这个错误: Failed to load resource: the server responded with a status of 503 (Service Temporarily Unavailable) 我知道是什么问题,我限制用户请求10req / s和所有外部链接和文件计数作为一个请求和10后达成所有其他要求失败,但我不知道如何处理它,我不知道我是否应该从我的快速代码或从nginx conf处理它。 我知道我应该让所有的网站请求数一次,但我不知道如何。 这是我的nginxconfiguration: # HTTP – redirect all requests to HTTPS limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; server { #listen 80 default_server; #listen [::]:80 default_server ipv6only=on; server_name www.example.com domain.com; return 301 https://example.com$request_uri; } map […]

nodejs覆盖/ usr / bin /其中,如何解决?

我有一个新安装的centos 7只有一些nodejs项目。 然后我发现which命令不能正常工作。 # which ls which: illegal option — – usage: which [-as] program … # echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 但是这个工作: # /usr/bin/which ls /usr/bin/ls 然后我做了一个cat /usr/bin/which ,发现它已经被一个nodejs程序取代了! #!/usr/bin/env node var which = require("../") if (process.argv.length < 3) usage() function usage () { console.error('usage: which [-as] program …') process.exit(1) } … … which命令是一个节点程序 # ls […]

我有一个单一的IP上运行的VPS,我可以redirect域到端口或我需要单独的IP?

这种情况可以通过我为VPS购买IPv6前缀来解决,但同时我也很想知道这是否可行。 基本上我想要实现的是通过域名在VPS上运行的Node.JS应用程序的简单接口,例如,我可以将“steak.chaos-kitten.com”指向一个node.js应用程序和“lister”。 chaos-kitten.com“指向另一个,也许”chaos-kitten.com“本身指向第三。 我知道你不能使用DNS来指向一个特定的端口,但有一些软件解决scheme,我可以使用,将redirect传入GET请求到适当的node.js应用程序基于域名?

暴发户日志不旋转

我有一个自定义的upstart脚本来pipe理Node API服务。 该脚本pipe道输出到/var/log/upstart/api-access.log 。 我所看到的是旧的日志被归档到api-access.log.1.gz ,但是没有创build一个新的api-access.log文件。 任何想法,为什么这可能会发生,或者我能做些什么来使它正确? 我的upstart文件的脚本部分如下所示: script chdir /opt/www/api exec sudo -u www-data NODE_ENV=production npm start >> /var/log/upstart/api-access.log end script

保护使用mod_proxy处理的stream量

我有一台运行Apache和Node.js服务器的机器。 stream量通过Apache使用mod_proxy被路由如下: <VirtualHost *:443> ServerName example.com ProxyPass / http://localhost:3000 #Node.js application … (cert info) … </VirtualHost> Node.js服务器启动时: http.createServer(app).listen(process.env.PORT || 3000) // As opposed to https.createServer… 由于最初的请求是通过HTTPS完成的,即使将stream量传递给可能不安全的应用程序,stream量是否仍然安全? 我无法想象Apache和Node之间的请求会被暴露出来吗? 我最好的猜测是,如果所有请求(甚至从节点到它本身)都是通过https://example.com它们将是安全的。

在ubuntu / nginx启动时运行一个shell命令

我有一个运行nginx和node.js的ubuntu 13,启动mongodb我需要在命令行上运行: mongod –config /etc/mongodb.conf 问题是,当我退出terminal,它停止,我怎么能把这个添加到启动脚本? 我认为这是引导scrpit: http : //pastebin.com/raw/ENxuMcpA

权限为nodejs设置

我有几个应用程序在我的服务器上运行; 他们是build立在meteor.js所以他们是nodejs进程,我运行它们永远使用npm模块; 我现在正在使用同一个用户,他们所有的网站目录拥有所有的网站目录永远启动, 现在,这将成为一个生产服务器,我想更好地了解这可能导致的安全问题; 有没有一些通用的安全规则可以遵循来启动nodejs进程? 我目前的做法可能危险吗?

以非root身份运行HTTPS Node.js服务器

可以通过HTTPS为应用程序提供服务的Node.js服务器作为非root用户运行吗? 问题是没有sudo,似乎没有办法像这样运行脚本,因为它必须访问证书。 我知道可以在启动Node后删除root权限,但如果可能的话,我想避免这种情况,因为这可能会导致一些意外的行为。

Node.js npm安装所有软件包

我怎样才能告诉npm安装其存储库中可用的所有软件包? 我必须脱机工作,所以我正在准备一个虚拟机在node.js中进行编码,而且我不知道将来是否会需要一些软件包,所以我希望能够事先安装所有软件包。