【发布时间】:2019-02-04 01:50:50
【问题描述】:
我是 node.js 的新手,我对服务器的工作方式有一些疑问。这可能有点傻,但我对服务器的理解是,它是我们用来与他人共享网站的工具。考虑以下代码:
var http = require("http");
http.createServer(function (request, response) {
// Send the HTTP header
// HTTP Status: 200 : OK
// Content Type: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// Send the response body as "Hello World"
response.end('Hello World\n');
}).listen(8081);
// Console will print the message
console.log('Server running at http://127.0.0.1:8081/');
当我们运行以下代码时,我们说我们已经“创建了一个服务器”。当我们转到“http://127.0.0.1:8081/”时,我们会得到想要的结果。但是,我不明白的是,如果我们“创建了服务器”,为什么只有执行 node.js 文件的计算机才能访问网址?我知道http://127.0.0.1:8081/ 不是唯一的,必须购买一个域名。或使用某种形式的免费托管。但是,我不明白所有这些东西是如何联系在一起的。
创建 html 文件时,我们可以在浏览器中查看它们,但其他人无法查看,因为我们没有设置服务器。我的想法是,一旦我了解了服务器,我最终将能够托管一个网站。我想我在这里想要的是解释一个人如何从 HTML、css javascript 等到建立并运行一个网站。
【问题讨论】:
-
127.0.0.1是一个特殊的 IP 地址,仅存在于“环回”网络接口 (lo) 上。要托管一个站点以便其他人可以看到它,您需要将您的服务器绑定到您的其他网络接口之一可用的 IP 地址(例如eth0)。您的每个接口都分配有 1 个 IP 地址。您可以绑定到其中的任何一个,或者您可以绑定到0.0.0.0,这意味着它将在任何网络接口上可用,在特定接口使用的 IP 地址上(例如lo上的 127.0.0.1,或您的eth123.100.123.100` oneth0等) -
此任务的关键字是“网络托管”。因此,例如,使用“在家中的网络托管”来访问您的搜索引擎。注意:在家用 PC 上托管网站需要一些时间来设置,并且存在风险。
-
@Alexander 您的评论太复杂了,我无法理解。我对节点很陌生。