我跟着本教程在我的 CentOS 上创建一个简单的 node.js 应用程序:
node.js 版本是:
$ node -v
v0.10.28
这是我的app.js
:
// Include http module,
var http = require("http"),
// And url module, which is very helpful in parsing request parameters.
url = require("url");
// show message at console
console.log('Node.js app is running.');
// Create the server.
http.createServer(function (request, response) {
request.resume();
// Attach listener on end event.
request.on("end", function () {
// Parse the request for arguments and store them in _get variable.
// This function parses the url from request and returns object representation.
var _get = url.parse(request.url, true).query;
// Write headers to the response.
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Send data and end response.
response.end('Here is your data: ' + _get['data']);
});
// Listen on the 8080 port.
}).listen(8080);
但是,当我将此应用程序上传到我的远程服务器(假设地址是 123.45.67.89)时,我无法在浏览器上访问它
http://123.45.67.89:8080/?data=123
浏览器返回Error code: ERR_CONNECTION_TIMED_OUT
。
我尝试了相同的 app.js 代码,它在我的本地机器上运行良好,我遗漏了什么吗?
我尝试访问ping
服务器并且其地址可以访问。
谢谢。
答案1
我猜你没有打开防火墙的 8080 端口。你可以使用iptables命令
iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
如果此方法有效,您可以使用以下命令保存防火墙状态
service iptables save