Nodejs 域名加端口访问不到对应页面

Nodejs 域名加端口访问不到对应页面

反向代理这个可以 @@ 好东西 可今天又遇到问题了 我启动一个服务器监听的是非80端口 通过域名追加 :81 (例如 www.xx.com:81)这样访问不到对应页面
但是服务器上curl www.xx.com:81是能访问到得 应该怎么解决哦 大神们

3 回复

Node.js 域名加端口访问不到对应页面

问题描述

最近在使用 Node.js 开发时遇到了一个问题。我启动了一个服务器,它监听的是非标准的 80 端口(例如 81),并通过域名加上端口号(例如 http://www.xx.com:81)来访问。然而,当从外部网络尝试访问时,无法看到预期的页面。但在服务器本地使用 curl www.xx.com:81 却能够正常访问。

解决方案

首先,确保你的 Node.js 服务器配置正确,并且能够监听指定的端口。其次,可能需要检查防火墙设置或 DNS 配置。下面是一个简单的 Node.js 服务器示例,用于监听特定端口并返回一个简单的 HTML 页面。

示例代码
const http = require('http');

// 创建一个 HTTP 服务器
const server = http.createServer((req, res) => {
    // 设置响应头部信息
    res.writeHead(200, { 'Content-Type': 'text/html' });
    
    // 发送响应数据
    res.end('<h1>Hello, this is a simple page!</h1>');
});

// 监听 81 端口
const PORT = 81;
server.listen(PORT, () => {
    console.log(`Server running at http://localhost:${PORT}/`);
});

检查步骤

  1. 确保 Node.js 服务已启动

    • 在服务器终端中运行 node your-script.js 确保没有错误。
  2. 检查端口是否被占用

    • 使用 lsof -i :81netstat -tuln | grep 81 查看端口 81 是否已被其他程序占用。
  3. 检查防火墙设置

    • 如果你在云服务器上部署,确保安全组或防火墙规则允许流量通过端口 81。例如,在 AWS 上,你可以在安全组中添加一条入站规则允许 TCP 端口 81。
  4. DNS 配置

    • 确认你的域名解析正确,指向正确的 IP 地址。你可以使用 nslookup www.xx.com 来检查 DNS 记录。
  5. 测试外部访问

    • 尝试从另一台设备(例如手机)访问 http://www.xx.com:81,以确认是否可以从外部网络访问。

结论

以上步骤应该能帮助你诊断和解决问题。如果问题仍然存在,请提供更多的日志或错误信息以便进一步分析。


描述太简单… 楼主写具体一点吧 比方说反向代理你怎么配的, 服务器还有你说访问不到的那台电脑分别是什么环境, 还有网络和域名配置怎么样的?

从你的描述来看,问题可能出在以下几个方面:

  1. 防火墙或安全组设置:确保服务器的防火墙或云服务商的安全组设置允许外部访问你指定的端口(如81端口)。

  2. DNS解析:确保域名www.xx.com正确解析到你的服务器IP地址。你可以使用nslookupdig命令检查DNS解析是否正确。

  3. Node.js服务配置:确保Node.js服务正确地监听了81端口,并且没有错误导致服务无法正常运行。你可以通过查看日志文件来确认是否有异常信息。

  4. 网络配置:如果你是在本地开发环境中测试,确保开发环境中的网络配置允许从浏览器访问指定的端口。

示例代码

以下是一个简单的Node.js服务示例,监听81端口并返回一个简单的HTML页面:

const http = require('http');

const hostname = '0.0.0.0'; // 监听所有网络接口
const port = 81;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/html');
    res.end('<html><body><h1>Hello, world!</h1></body></html>');
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

检查步骤

  1. 启动Node.js服务: 在命令行中运行上述代码,启动Node.js服务。

  2. 检查防火墙/安全组: 确保防火墙或云服务商的安全组允许外部访问81端口。

  3. 检查DNS解析: 使用nslookupdig命令检查域名是否正确解析到服务器IP。

  4. 检查日志: 查看Node.js服务的日志输出,确保服务正常运行,没有错误。

如果以上步骤都没有解决问题,请提供更多的错误信息或配置细节,以便进一步诊断问题。

回到顶部