因此我通过http-server
在npm
上运行了一个Web应用程序。在我的package.json
文件中,我有一行"start": "sudo http-server -a [my ip address] -p 8065 -c-1"
,当我转到http://myipaddress:8065
时,我的应用运行正常。但是,如果我将8065更改为80,在json文件中(这就是我想要的),我仍然会收到成功消息:
Starting up http-server, serving ./
Available on:
http://myipaddress:80
但是当我转到链接时,chrome会给我一个ERR_CONNECTION_REFUSED。有谁知道发生了什么?
答案 0 :(得分:4)
我建议这里有三个可能的问题。
要检查端口80是否已被使用,请尝试
netstat -lntu | grep :80
如果端口80已在使用中,您应该看到类似
的内容tcp6 0 0 :::80 :::* LISTEN
您需要关闭端口80上运行的任何内容(apache?nginx?)
要检查是否可以实际绑定到端口80,请尝试从控制台运行http-server,而不是通过npm运行。
sudo http-server -a [my ip address] -p 80 -c-1
如果以上工作,您应该能够以root身份运行npm来启动您的http服务器,即
sudo npm start
您可能需要从package.json中删除sudo:
"start": "http-server -a [my ip address] -p 8065 -c-1"
我们需要确保http-server在您的系统上正常运行。我们将使用w3m基于控制台的Web浏览器对其进行测试。
如果您还没有使用sudo apt-get install w3m
,则可能需要安装w3m。
mkdir /tmp/testing
cd /tmp/testing
w3m http://localhost:1234/
w3m http://localhost/
是否有效?答案 1 :(得分:0)
快速测试:
尝试以localhost地址(localhost或127.0.0.1)访问此地址以快捷方式防火墙。
尝试在端口80上telnet到此地址,以查看服务器回复的内容(如果有)。
答案 2 :(得分:0)
要使用小于1000的pot运行nodejs应用程序,您需要root访问权限。使用sudo node app.js也不要忘记打开防火墙。并确保没有其他人在端口80上收听。
答案 3 :(得分:0)
你安装了Apache吗?确保将应用程序服务器放在端口80上与Apache没有冲突吗?
在这种情况下,最好将端口80重定向到只在Apache端口上启动它的应用服务器。
答案 4 :(得分:0)
是错误102吗?检查此link。可能是您安装的某些扩展程序造成的。