Articles of node.js

如何使CentOS 5.6上的所有端口都可以访问?

我已经在Virtual PC 2007下build立了一个作为虚拟机运行的CentOS 5.6开发服务器,以便和Node.js一起玩。 一切正常,并且正在运行,但似乎无法访问端口8234,这是运行节点服务器的端口。 我知道服务器正在运行,因为我可以使用wget localhost:8234并检索包含“Hello World”的HTML文件,这是正确的。 如果我使用端口扫描器,我可以看到“允许传入”部分中提到的所有端口都打开并响应Ping,但没有其他任何东西。 我已经运行setup并设置如下: 在我看来,这些设置应该已经closures了防火墙,并允许eth0 (唯一的虚拟networking接口)出现的任何东西,但似乎并非如此。 我怎样才能完全禁用防火墙,否则,使外部世界可以访问端口8234?

node.js ./configure警告

我试图安装node.js,当我运行./configer时,我得到了这个警告列表。 我不知道我在Debian安装时遇到了哪些库/包(在Bubba2服务器上的Linux 2.6.32.6 ppc GNU / Linux) Checking for gnutls >= 2.5.0 : fail — libeio — Checking for pread(2) and pwrite(2) : fail Checking for sync_file_range(2) : fail — libev — Checking for header sys/inotify.h : not found Checking for header port.h : not found Checking for header sys/event.h : not found Checking for […]

为什么如果我调用“远程页面”,样式表会被忽略?

我正在玩node.js,现在。 我很喜欢。 我有一个奇怪的错误。 如果我启动testing服务器 node app.js 并导航到http:// localhost:3000 ,一切都很好。 样式表被加载,所有东西看起来都是应该的。 但是,如果我通过nginx导航到网站,网站和样式表被加载,但似乎被忽略。 这是相同的源代码。 它以相同的方式parsing。 而且我已经testing过,样式表已经正确加载了。 我真的不知道了。 还有谁? 这是我的nginx vhost-config: server { listen 80; server_name expressapp.lc; root /home/matthias/Documents/webapps/expressapp/public; location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { expires 15d; } location / { proxy_pass http://127.0.0.1:3000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_redirect off; } gzip on; […]

分析+下载跟踪

所以我处于一个棘手的状况 我非常喜欢Mint,我目前正在使用它进行分析。 谷歌分析并没有削减,因为我需要实时信息。 现在,我已经超过了Mint,在没有写一个非常重要的插件的情况下,我不能轻易地跟踪我的静态文件下载(从Rails / Sinatra / Node.js应用程序)。 最终,我需要一个能够满足以下全部(或大部分)要求的一体化统计解决scheme: 伟大的用户界面(或者如果我可以至less重写自己的用户界面,我很好) (REST)API给我手动发送统计(例如静态文件下载) 自主托pipe,或基于服务和免费/合理定价 实时查看统计信息 如果可能的话,我宁愿不使用PHP 没有MySQL也是一个加号 需要快速 我不想要日志分析器(AWStats,Analog等) 如果可能的话,可扩展的,这样我可以跟踪运输包中可能/不可用的额外指标(这是一个很好的) 我知道一些有趣的选项,即蜂鸟和Snowfinch ,但是我对Node.js没有认真的经验(蜂鸟的案例)。 有没有更好的select? 我应该使用蜂鸟/雪鸟吗? 我应该推出自己的? 也许放弃并find新的爱好?

Ubuntu Upstart作业 – “停止”是不能识别的命令

我需要一些帮助, 无休止的脚本看起来完全一样 – 但我似乎无法停止与暴发户脚本相关的工作。 我正在使用EC2上的任何最新的Ubuntu Elestic AMI,并且它从微型到大型实例发生。 首先,我在/etc/init/node-monitor.conf提交一个简单的configuration来启动一个进程: description "node-monitor" start on (local-filesystems and net-device-up IFACE=eth0) stop on shutdown exec sudo -u root sh -c "cd /home/ubuntu/node-monitor/run && /usr/local/bin/node client.js ec2=true debug=false console=true cloudwatch=true >> /var/log/node-monitor.log 2>&1 &" 这工作开始: sudo start node-monitor node-monitor start/running, process 1580 但不停: sudo stop node-monitor stop: Unknown instance: 然后,我尝试了一些更复杂的,基于另一个node.js项目: description […]

具有SSL / TLS协议v1.2的Node.js

我想在我的node.js服务器上使用TLS 1.2。 我目前正在使用openssl 1.0.0e。 如果我升级到openssl 1.0.1,我是否需要重buildnode.js升级到TLS 1.2? 是否有configuration或生成设置来指定我想要使用的密码? 此外,升级到TLS 1.2后,我需要生成新的SSL证书?

node.js服务器没有运行

我试图学习node.js,但我有麻烦获得简单的服务器上运行localhost:8888 。 这里是server.js的代码: var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); }).listen(8888); server.js运行没有错误,并尝试netstat -an | grep 8888 netstat -an | grep 8888从terminal返回 tcp4 0 0 * .8888 *。* LISTEN 但是,当我去浏览器中的本地主机:8888,它说,它不能被发现。 我已经看过所有相关的问题,到目前为止没有任何工作。 我试过不同的端口等。我知道我的路由器阻止端口8888传入的stream量,但不应该不重要,如果我试图访问它本地? 例如,我在这个端口上运行了tomcat服务器。 非常感谢你的帮助! node.js版本: v0.6.15 操作系统: Mac OS 10.6.8

高stream量websocket / haproxy调优

我有一个pubsub应用程序(主要是聊天,但也有一些其他的好东西被发布和sub-ed太)运行在节点和socket.io。 我负载testing这个应用程序通过旋转一些其他的,真正的大型盒子,并运行我为此写的节点应用程序,产生了使用socket.io-client包进行连接的大量进程。 我发现我可以获得大约1k并发连接到一个1gig机架空间云盒子。 我们需要支持10k和100k之间的并发连接(对于特定的事件,而不是所有的时间),尽pipe如此,我把一个负载均衡器放在前面,并在大型事件之前计算出了更多的机器。 但我已经把一个haproxy框在前面,发现有2个服务器和2K用户我是金,但有4个服务器甚至3K用户是一个斗争! 我注意到,当我的负载testing开始导致大量的断开连接节点服务器正在经历非常高的CPU使用率(在90%),我觉得很奇怪,因为当2个服务器和2K用户结束了70%,其中最快速减less。 这里是我的haproxyconfiguration的一些相关的行: mode http timeout client 86400000 timeout server 86400000 timeout connect 5000 maxconn 100000 我也把一些内核networking调整到我的haproxy和节点框的/etc/sysctl.conf中: net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 1024 65023 net.ipv4.tcp_max_syn_backlog = 10240 net.ipv4.tcp_max_tw_buckets = 400000 net.ipv4.tcp_max_orphans = 60000 net.ipv4.tcp_synack_retries = 3 net.core.somaxconn = 50000 net.core.netdev_max_backlog = 50000 net.ipv4.tcp_rmem = 8192 87380 8388608 net.ipv4.tcp_wmem = 8192 87380 […]

Nginx的proxy_cache_key和HEAD-> GET请求

我有以下的Nginxconfiguration: http { … proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m; proxy_temp_path /var/tmp; … upstream webhook_staging { server 127.0.0.1:4001; keepalive 64; } location /webhooks/incoming_mails { client_max_body_size 60m; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header Connection ""; proxy_http_version 1.1; # Does not work for HEAD requests #>> proxy_cache one; #>> proxy_cache_key […]

Postfix mailbox_command + netcat + nodejs

我使用Node.js脚本处理传入的电子邮件,并通过mailbox_command(即:nc 127.0.0.1 3002)通过netcat从Postfixpipe道传输邮件。 节点正在监听端口3002,并在处理电子邮件时调用socket.destroy()。 但是,似乎后缀无法识别该命令成功和重试。 那么,我不确定这是谁导致问题的后缀,这只是一个build议。 一些事实: 处理电子邮件后,套接字已closures。 否则,12个传入消息之后,节点会警告可能的内存泄漏。 所以我认为netcat退出不会导致这个问题。 如果我用mailbox_command(使用stdin而不是socket)产生Node进程,然后用代码0退出,postfix不会尝试再次调用mailbox_command。 如果我为netcat使用-q选项(例如nc -q 1 127.0.0.1 3002),则节点不会收到任何内容 一旦电子邮件处理,我logging一个时间戳。 这是logging一个电子邮件: 套接字销毁于:星期五2014年3月28日05:07:25 GMT-0400(美国东部时间) 套接字销毁于:星期五2014年3月28日05:11:25 GMT-0400(EDT)套接字销毁于:2014年3月28日05:11:25 GMT-0400(美国东部时间) 套接字销毁在星期五2014年3月28日05:18:35 GMT-0400(EDT)套接字销毁于:星期五2014年3月28日05:18:35 GMT-0400(EDT)套接字销毁于:星期五2014年3月28日05:18: 35 GMT-0400(美国东部时间) 套接字销毁在:星期五2014年3月28日05:18:51 GMT-0400(EDT)套接字销毁于:星期五2014年3月28日05:18:51 GMT-0400(EDT)套接字销毁于:星期五2014年3月28日05:18: 51 GMT-0400(EDT)sockets销毁时间:2014年3月28日05:18:51 GMT-0400(美国东部时间) 注意突出时间。 正如你所看到的,它重试n + 1次,但没有固定的重试超时。 请帮我解决这个问题。