【问题标题】:connecting to node.js http server on linux machine from windows machine从 windows 机器连接到 linux 机器上的 node.js http 服务器
【发布时间】:2013-11-08 08:36:06
【问题描述】:

我正在尝试编写我的第一个节点 http 服务器。我让它在我的 linux 机器上运行。如果我在浏览器中输入网址。我看到了 hello world 网页。

 myLinuxHostName:1227/

我现在正试图从我的 Windows 机器连接到这个 linux 节点服务器。如果我从我的 Windows 机器在浏览器中输入我的相同 url,我会得到网页不可用。我尝试 ping 我的 linux 主机,效果很好。我做错了什么?

我正在使用 nodejs.org 主页上的简单 http 服务器代码。

【问题讨论】:

    标签: node.js


    【解决方案1】:

    如果你使用这个例子:

    var http = require('http');
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    }).listen(1337, '127.0.0.1');
    console.log('Server running at http://127.0.0.1:1337/');
    

    然后只使用这个确切的 ip 127.0.0.1 运行,这意味着 localhost 和其他 VHost 无法到达该服务器。你必须这样做。

    var http = require('http');
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    }).listen(1337);
    

    欲了解更多信息:http://nodejs.org/api/net.html#net_server_listen_port_host_backlog_callback

    【讨论】:

    • 完美,感谢您的快速回答。所以里面指定的主机名基本上不是它运行的主机而是它允许连接的主机?
    • 他们在文档中说:“开始接受指定端口和主机上的连接。如果省略主机,服务器将接受定向到任何 IPv4 地址 (INADDR_ANY) 的连接。”
    • @sublime: 不,主机名指定它运行的主机,而不是允许它连接的主机。如果您将127.0.0.1 替换为myLinuxHostname,那么它也可以工作。您的服务器有许多 IP 地址。
    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2017-09-25
    • 2017-07-26
    相关资源
    最近更新 更多