【问题标题】:How do you get a website to be seen by others你如何让一个网站被别人看到
【发布时间】: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 文件时,我们可以在浏览器中查看它们,但其他人无法查看,因为我们没有设置服务器。我的想法是,一旦我了解了服务器,我最终将能够托管一个网站。我想我在这里想要的是解释一个人如何从 HTMLcss 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` on eth0 等)
  • 此任务的关键字是“网络托管”。因此,例如,使用“在家中的网络托管”来访问您的搜索引擎。注意:在家用 PC 上托管网站需要一些时间来设置,并且存在风险。
  • @Alexander 您的评论太复杂了,我无法理解。我对节点很陌生。

标签: web server


【解决方案1】:

速成课程:什么是服务器?

我是 node.js 的新手,我对服务器的工作方式有一些疑问。这可能有点傻,但我对服务器的理解是,它是我们用来与他人共享网站的工具。

服务器这个词很笼统。简单地说,服务器是向客户提供数据或功能(服务)的程序或机器; 客户端是从服务器接收数据或服务的程序或机器。

服务器和客户端示例

重要提示:服务器和客户端的概念并不是 node.js 或网站所独有的。以下是一些其他类型的服务器:

  • 家庭媒体服务器提供照片、音乐和视频。客户端包括您家中的计算机/手机/平板电脑中的媒体播放器应用。
  • 邮件服务器 提供电子邮件服务。客户包括互联网上所有计算机/手机/平板电脑中的电子邮件应用程序。
  • 网络服务器提供 HTML、CSS、Javascript 文件以及照片、视频、PDF 文档等在线内容。客户端包括网络浏览器。

服务器和客户端可以非常“接近”在一起(例如在同一台计算机上的同一个程序中),或者它们可以非常“远离”(例如在内部不同国家的不同计算机,由 Internet 分隔)。或者,它们可能介于两者之间(例如在同一所房子的不同计算机中)。

速成班:什么是 127.0.0.1?

如果我们已经“创建了一个服务器”,为什么只有执行 node.js 文件的计算机才能访问该网址?

127.0.0.1 是一个特殊的IP 地址,也称为localhost。简单地说,它指的是“托管此应用程序的机器”。当您告诉 Web 浏览器访问 127.0.0.1 时,您的 Web 浏览器会在运行它的同一台计算机上查找服务器。

如果您使用手机的网络浏览器访问 127.0.0.1,它不会在您的计算机上查找运行 node.js 的服务器。相反,它会在您的手机上寻找服务器。

如何在家中的另一台机器上查看网站?

如果您想让手机在计算机上查看网站,您需要执行几个步骤。我会给你一个总结,但你必须自己深入研究这些主题:

  1. 您的手机和 node.js PC 必须在同一子网。您可以通过将两台设备连接到同一个 Wi-Fi 网络来实现这一点。
  2. 您必须找出您 PC 的本地 IP 地址。如果您的 PC 运行 Windows,则可以使用 ipconfig,如果运行 Linux,则可以使用 ifconfig
  3. 您必须告诉您 PC 的 防火墙 允许您的网络服务器使用的 TCP 端口 上的传入流量。在您的示例中,您使用的是端口 8081
  4. 最后,告诉手机的网络浏览器你的电脑的本地IP地址端口。例如,如果您的 PC 的 IP 地址是 192.168.1.20,则使用您的手机访问http://192.168.1.20:8081/

如何通过 Internet 在另一台机器上查看网站?

这是另一天的话题。

我的想法是,一旦我了解了服务器,我终于可以托管一个网站了。

对不起,这还不够。涉及的内容更多。从研究我已经提到的主题开始,以粗体显示。

【讨论】:

    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    相关资源
    最近更新 更多