我试图建立一个Node.JS服务器,以这种方式监听我的CentOS服务器的3800端口:
var app = require('express')();
var http = require('http').Server(app);
app.get('/', function(req, res){
res.send('<h1>Hello World!</h1>');
});
http.listen(3800, function(){
console.log('Listening on port: 3800');
});
我有一个域,我在我的apache服务器上使用虚拟主机配置此域以侦听端口80.但是当我尝试访问时
http://example.com:3800 or http://server_ip:3800
它不能正常工作。浏览器不断尝试连接,然后我收到了错误。
因为我遵循了教程,所以我不知道自己做错了什么。我在这里搜索了其他问题,我试图将代码复制到我的index.js而没有。这个简单的&#34; Hello World&#34;没有显示,我无法访问服务器。
我做了&#34;节点index.js&#34;并且在我的服务器上显示&#34;正在侦听端口:3800&#34;完全,我有root权限,我用root用户做了一切。我做了&#34; npm install express&#34;和&#34; npm install socket.io&#34;命令也是,我尝试制作package.json文件,然后&#34; npm install&#34;。我搜索了另一个网站,我用&#34; npm install --save:express&#34;尝试了他们的指示,也赢得了工作。
我认为我的Linux配置存在问题。
我的问题是:当我访问http://example.com:3800时,如何使这个简单的脚本生效?
答案 0 :(得分:1)
我的问题的正确答案是使用以下命令在iptables上打开端口:
iptables -I INPUT -p tcp --dport 3800 -j ACCEPT
然后使用以下命令保存:
/ sbin / service iptables save
基于CentOS6的系统。
答案 1 :(得分:0)
您的实际示例将转到localhost:3800
我不确定如何在apache服务器中运行nodejs:/
如果有帮助,我通常会与您的代码略有不同:
var app = require('express');
var http = require('http');
app.get('/', function(req, res){
res.send('<h1>Hello World!</h1>');
});
app.listen(3800, function(){
console.log('Listening on port: 3800');
});
EDIT -------------------------------
你的主要问题是你正在尝试在Apache中使用nodejs,如上所述,并非不可能,但我确定配置你的服务器很痛苦,并且不会是正常的LAMP堆栈配置,你可能会运行某些错误或切割功能,尝试在节点后端托管您的应用程序,如openshift或heroku