我试图安装一个nodejs服务器监听端口8080,我用iptable打开,但是当我运行nmap或一个web工具,我总是得到消息,端口被closures。 我在Ubuntu的vps。 首先,确保nodejs实际上在监听这样的端口: sudo netstat -tpln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:60613 0.0.0.0:* LISTEN 1097/sshd tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1215/mysqld tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 18843/nodejs tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1375/master tcp6 0 0 :::60613 :::* LISTEN […]
我正在使用socket.iobuild立networking聊天 为了在端口3000通过https进行通信,我需要传递我的ssl密钥和证书文件。 Socket.io是一个开放源代码,我不知道它是如何可靠地访问像我的证书和密钥文件这样的安全文件。 这是来自socket.io的代码,由nodeJS在服务器端运行: var fs = require('fs'); var https = require('https'); var express = require('express'); var app = express(); var options = { key: fs.readFileSync('../chat/file.pem'), cert: fs.readFileSync('../chat/file.crt') }; var server = https.createServer(options, app); var io = require('socket.io')(server);
我正在使用全新安装的Centos 5.5。 我有节点安装和工作(我只是使用节点 – 没有Apache或Nginx。),但我不知道如何使一个简单的服务器端口80.节点正在运行,正在侦听端口80.我'米只是使用演示应用程序: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(80, "xxxx"); console.log('Server listening to port 80.'); 当我访问我的IP时,它不起作用。 我使用ifconfig获得了我的ipaddress。 我试过不同的端口。 所以一定有我失踪的东西。 我需要在我的服务器上configuration什么来完成这项工作? 我想这样做,而不安装Apache或Nginx的。 卢克 编辑 – 好吧,我安装nginx并启动它,看它是否与节点有关,我没有看到它的欢迎页面。 所以它肯定与服务器有关。 我正确检索IP地址通过运行: ifconfig然后读取eth0下的inet addr ?
我刚刚设置了nginx作为一个反向代理,所以一些从站点服务的站点直接服务于它,而另外一些则转发到Node.js服务器。 但是,由Node.js服务的站点没有显示CSS或图像,所以我假设链接被破坏,但不知道为什么。 以下是/ etc / nginx / sites-enabled中的唯一文件: server { listen 80; ## listen for ipv4 listen [::]:80 default ipv6only=on; ## listen for ipv6 server_name dev.my.site; access_log /var/log/nginx/localhost.access.log; location / { root /var/www; index index.html index.htm; } location /myNodeSite { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; } } 我曾经想过,也许是因为第一次进入而试图在/ var / www中find它们,但是删除它似乎没有帮助。
我正在使用新安装的CentOS 6.4(x86-64)和EPEL库。 $ yum install nodejs … $ node -v v0.10.5 到目前为止,这么好,但是当我尝试安装npm ,我会得到这个错误消息: $ yum install npm Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: ftp.halifax.rwth-aachen.de * epel: mirror.fraunhofer.de * extras: centos.psw.net * updates: centos.psw.net Setting up Install Process Resolving Dependencies –> Running transaction check —> Package npm.noarch 0:1.2.17-5.el6 will […]
我正在使用upstart在Amazon Linux AMI EC2实例上运行我的node.js应用程序。 我有几个问题得到它的工作,总结如下。 在我的脚本中,我有这样一行: exec sudo -u www /usr/local/bin/node /var/www/foo/app.js >> /var/log/foo.sys.log 2>&1 运行时,作业从来没有通过stop/waiting ,当我打开log-priority debug我看到了这一行: sudo: sorry, you must have a tty to run sudo 我结束了这篇文章,谈论visudo ,为什么我不应该使用它,以及它如何build议使用–session-command 。 所以我改变了行: exec su –session-command="/usr/local/bin/node /var/www/foo/app.js >> /var/log/foo.sys.log 2>&1" www 日志现在说(sys) Starting但initctl status foo仍然说foo stop/waiting 。 这一点,我不知道如何做得到这个工作,任何帮助,将不胜感激。 更新:我已经从这个post过来,结果是一样的。
我使用VirtualHosts来允许在同一个Apache服务器上访问我的站点的各种域和子域。 沿着: <VirtualHost *:80> DocumentRoot /var/www/site ServerName example.com </VirtualHost> 我想有一个特定的子域指向同一台服务器上的NodeJS服务器。 我知道我可以使用ProxyPass转发到不同的服务器,有没有类似的方式来做到这一点在同一台机器? 我假设我将有一个80以外的端口上运行的节点服务器。
好的,所以我将Node.js服务器放置了一段时间,然后回来在日志中find一些非常有趣的东西。 显然中国或波兰的一些白痴试图使用目录遍历来攻击我的服务器,而不是,虽然他似乎虽然没有成功,但我无法理解日志中的几个条目。 这是“hohup.out”文件的输出。 攻击开始,显然他正试图find我的服务器中的一些控制台条目。 所有这些失败,并返回一个404。 [90mGET /../../../../../../../../../../../ [31m500 [90m6ms – 2b[0m [90mGET /<script>alert(53416)</script> [33m404 [90m7ms[0m [90mGET / [32m200 [90m2ms – 240b[0m [90mGET / [32m200 [90m1ms – 240b[0m [90mGET / [32m200 [90m2ms – 240b[0m [90mGET /pz3yvy3lyzgja41w2sp [33m404 [90m1ms[0m [90mGET /stylesheets/style.css [33m404 [90m0ms[0m [90mGET /index.html [33m404 [90m1ms[0m [90mGET /index.htm [33m404 [90m0ms[0m [90mGET /default.html [33m404 [90m0ms[0m [90mGET /default.htm […]
我试图让我的Ubuntu服务器上运行的应用程序,以便Google有时间ping它,但是当我注销时,应用程序一直closures。 我使用supervisor启动Nodejs应用程序来监视更改(通过shell脚本) 我发现了像nohup这样的命令,但是在运行后台服务方面,除了input诸如service httpd start类的简单命令之外,我真的无能为力,这似乎对CentOS上的Apache非常有用! 我是否需要创build另一个用户来运行服务? 我有一个Ubuntu 10.04的Linode实例 run.sh cd myapp/src/main/node supervisor -w "myapp/src/main/node,myapp2/src/main/node,./" run-apps.js
我一直在尝试在Amazon EC2实例上设置一个简单的websocket服务器。 我正在使用Linux的微型实例。 第一次启动后,我更新了所有的操作系统软件包, 遵循这个伟大的指南获取节点和NPM安装 ,安装socket.io,expression(目前不使用),和websocket.io其中包括由miksago websocket服务器。 首先,我将Socket.io作为后端。 我使用下面列出的网站的示例代码设置了一个简单的服务器。 我用sudo node server.js运行这个。 我使用sudo,以便可以在端口80上侦听,否则会导致错误。 从这里,我把我的亚马逊公共DNS到websocket.org回声testing的位置字段。 当我按连接,我的服务器将输出debug – destroying non-socket.io upgrade 。 我有一个控制台输出内的“连接”监听器,永远不会打印,所以看起来有一个错误之前,连接请求通过。 这可能是我必须使用socket.io客户端的一个socket.io服务器工作,但我找不到任何明确的答案。 我第二次尝试使用Miksago的websocket-server。 我将列出下面的服务器的源代码。 这一次,我能够看到连接请求上的控制台输出,但连接仍未build立。 我试图打印connection.header对象,但收到一个错误。 我试图build立一个简单的服务器,只是为了让基础知识去,我一直无法确定是什么问题。 我使用websocket.org来testing服务器,因为他们的客户端设置正确。 我在做什么错误设置服务器? Socket.io server var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { console.log("Connection request on socket.io server"); }); Websocket-Server var ws = require("websocket-server"); var server = ws.createServer(); server.addListener("connection", […]