Ubuntu: 端口 80 上的 Http-server 正在启动,但无法从浏览器访问?
Ubuntu: Http-server on port 80 starting up, but can't access from browser?
所以我有一个 Web 应用程序 运行 在 http-server
上通过 npm
。在我的 package.json
文件中,我有行 "start": "sudo http-server -a [my ip address] -p 8065 -c-1"
,当我转到 http://myipaddress:8065
时,我的应用程序 运行 正常。但是,如果我将 json 文件中的 8065 更改为 80(这是我想要的),我仍然会收到成功消息:
Starting up http-server, serving ./
Available on:
http://myipaddress:80
但是当我去 link 时,chrome 给了我一个 ERR_CONNECTION_REFUSED。有人知道发生了什么事吗?
快速测试:
尝试以本地主机地址访问此地址,本地主机或 127.0.0.1 以快捷方式访问任何潜在的防火墙。
尝试在端口 80 上远程登录到此地址以查看服务器回复的内容(如果有)。
对于运行 pot 小于 1000 的 nodejs 应用程序,您需要 root 访问权限。使用 sudo node app.js 也不要忘记打开防火墙。并确保没有其他人在端口 80 上监听。
你有安装Apache吗?确定将您的应用程序服务器放在端口 80 上不会与 Apache 冲突吗?
在这种情况下,最好将端口 80 重定向到刚刚在 Apache 端口上启动它的应用程序服务器。
我认为这里可能存在三个问题。
- 端口 80 已被使用。
- 您没有运行将应用程序设置为 root(如果您不是 root,则不能绑定到 <1024 端口)
- http 服务器未正确绑定
要检查端口 80 是否已被使用,请尝试
netstat -lntu | grep :80
如果端口 80 已被使用,您应该会看到类似
的内容
tcp6 0 0 :::80 :::* LISTEN
您需要关闭端口 80 上 运行ning 的所有内容(apache?nginx?)
要检查您是否真的可以绑定到端口 80,请尝试从控制台 运行ning http-server 而不是通过 npm,即
sudo http-server -a [my ip address] -p 80 -c-1
如果上述方法有效,您应该能够 运行 npm 以 root 身份启动您的 http 服务器,即
sudo npm start
您可能需要从 package.json:
中删除 sudo
"start": "http-server -a [my ip address] -p 8065 -c-1"
我们需要确保 http-server 在您的系统上正常工作。我们将使用基于控制台的 Web 浏览器 w3m 对其进行测试。
如果您还没有安装 w3m,您可能需要 sudo apt-get install w3m
安装它。
- 创建一个新目录。
mkdir /tmp/testing
- CD 到新目录
cd /tmp/testing
- 使用 `http-server 启动 http-server。 -a 本地主机 -p 1234
- 使用 w3m
w3m http://localhost:1234/
访问 http://localhost:1234
- 使用 `http-server 启动 http-server。 -a 本地主机 -p 80
- 在 w3m 中访问 http://localhost
w3m http://localhost/
它有效吗?
是错误102吗?检查此 link。可能是你安装了一些扩展引起的。
所以我有一个 Web 应用程序 运行 在 http-server
上通过 npm
。在我的 package.json
文件中,我有行 "start": "sudo http-server -a [my ip address] -p 8065 -c-1"
,当我转到 http://myipaddress:8065
时,我的应用程序 运行 正常。但是,如果我将 json 文件中的 8065 更改为 80(这是我想要的),我仍然会收到成功消息:
Starting up http-server, serving ./
Available on:
http://myipaddress:80
但是当我去 link 时,chrome 给了我一个 ERR_CONNECTION_REFUSED。有人知道发生了什么事吗?
快速测试:
尝试以本地主机地址访问此地址,本地主机或 127.0.0.1 以快捷方式访问任何潜在的防火墙。
尝试在端口 80 上远程登录到此地址以查看服务器回复的内容(如果有)。
对于运行 pot 小于 1000 的 nodejs 应用程序,您需要 root 访问权限。使用 sudo node app.js 也不要忘记打开防火墙。并确保没有其他人在端口 80 上监听。
你有安装Apache吗?确定将您的应用程序服务器放在端口 80 上不会与 Apache 冲突吗?
在这种情况下,最好将端口 80 重定向到刚刚在 Apache 端口上启动它的应用程序服务器。
我认为这里可能存在三个问题。
- 端口 80 已被使用。
- 您没有运行将应用程序设置为 root(如果您不是 root,则不能绑定到 <1024 端口)
- http 服务器未正确绑定
要检查端口 80 是否已被使用,请尝试
netstat -lntu | grep :80
如果端口 80 已被使用,您应该会看到类似
的内容tcp6 0 0 :::80 :::* LISTEN
您需要关闭端口 80 上 运行ning 的所有内容(apache?nginx?)
要检查您是否真的可以绑定到端口 80,请尝试从控制台 运行ning http-server 而不是通过 npm,即
sudo http-server -a [my ip address] -p 80 -c-1
如果上述方法有效,您应该能够 运行 npm 以 root 身份启动您的 http 服务器,即
sudo npm start
您可能需要从 package.json:
中删除 sudo"start": "http-server -a [my ip address] -p 8065 -c-1"
我们需要确保 http-server 在您的系统上正常工作。我们将使用基于控制台的 Web 浏览器 w3m 对其进行测试。
如果您还没有安装 w3m,您可能需要 sudo apt-get install w3m
安装它。
- 创建一个新目录。
mkdir /tmp/testing
- CD 到新目录
cd /tmp/testing
- 使用 `http-server 启动 http-server。 -a 本地主机 -p 1234
- 使用 w3m
w3m http://localhost:1234/
访问 http://localhost:1234
- 使用 `http-server 启动 http-server。 -a 本地主机 -p 80
- 在 w3m 中访问 http://localhost
w3m http://localhost/
它有效吗?
是错误102吗?检查此 link。可能是你安装了一些扩展引起的。