什么使得 PC 能够成为网络服务器,什么又使其不能成为网络服务器?

什么使得 PC 能够成为网络服务器,什么又使其不能成为网络服务器?

我对将计算机用作 Web 服务器有疑问。为什么某台计算机可以用作 Web 服务器?它有哪些特性使其能够用作 Web 服务器?有哪些情况计算机无法用作 Web 服务器?

答案1

几乎任何计算机都可以用作 [网络] 服务器,只要它可以连接到网络并可以运行网络服务器软件。由于网络服务器可以非常简单,并且有免费和开源的网络服务器,因此实际上,任何设备都可以充当网络服务器。

更大的问题是网络方面。为了让系统充当服务器,其他机器需要能够访问它。如果它只是在 LAN 中使用,则不用担心;但是,如果它是在更广泛的 Internet 上使用,则需要将数据路由到它。这需要与服务器关联的静态 IP 地址(或通过路由器转发的端口),或者可以将域名/子域映射到不断变化的动态 IP 地址的外部服务。

(FWIW,你可以购买10 美元的电脑它可以充当一个基本的网络服务器。

当然,虽然任何设备都可以充当网络服务器,但网站的功能可能有很大差异,廉价的设备(或慢速连接)可能无法满足特定网站的需求。

我注意到上面的所有内容都是关于网络服务器的 - 但几乎任何类型的服务器都可以这样说。

答案2

这并不难。这仅仅取决于你对“Web 服务器”的定义。

完全有可能在像微控制器一样简单的设备上运行“网络服务器”。

让我们考虑一下最基本的 Web 服务器需要做什么。它需要向客户端输出一些文本 - 甚至不一定是 HTML。它需要知道请求是请求,并做出适当的响应。如果您的“客户端”是本地的,您甚至不需要网络连接。它将是一个完全没有意义的 Web 服务器。

它将相当于 Web 服务器其中之一

在此处输入图片描述

为客户端添加网络连接(以太网很好,但没有技术原因导致您无法连接到在 wifi 上运行的网络服务器)并且能够从客户端进行路由会更好。

5 美元ESP8266– 一个便宜、最小型的带 wifi 的微控制器就可以处理大部分内容,甚至可以处理基本的动态内容

我使用类似的东西通过 Python 快速共享文件。在微控制器上编写类似的东西,甚至在手机上运行它,仍然是完全可能的。

静态内容很无聊。添加动态语言,您需要开始考虑更重的系统。运行 Linux 或 Windows 的东西很好。

此时,您正在谈论的是消费者路由器、在 UI 上使用网页的小型应用程序等等。

Web 服务器甚至不是一个复杂的问题,可以用五行 bash并在 Linux 上运行。现在厄运...但是任何可以运行 Doom 的系统都可以运行 Web 服务器。

A好的能够处理给定负载的 Web 服务器设置有些棘手。

答案3

最低限度

字面上地,任何如果计算机具有以下条件,则可以成为 Web 服务器:

  • 网络连接
  • 一个非常简单的网络服务器应用程序,像这样

但这就足够了吗?这是一个棘手的问题。

为内部网提供服务

要让计算机成为向整个社区(例如学校、公司、博物馆)提供现代网页或网络应用程序的网络服务器,需要满足以下要求:

  • 能够同时响应多台计算机的硬件。运行 Linux 或 Windows XP 的旧计算机也许可以。
  • 具有足够带宽的高速网络连接,例如 1 Gbit/秒以太网或 802.11g Wi-Fi。
  • 一个好的网络服务器应用程序,例如互联网信息服务阿帕奇Nginx或者其他的。(令人惊奇的是,这三个都是免费的。)

但这对于小型企业来说只是最低标准。当您的业务规模变大时(即,您的流量越来越大,并且需要提供复杂的 Web 应用程序而不是静态页面),您的需求也会随之增长。您最终将需要:

  • 服务器级硬件,例如配备多个 Xeon CPU 和数百 GB RAM 的机架式服务器
  • 光纤网络

服务外部世界

要利用互联网基础设施为全世界服务,您需要:

如果没有这些,你所拥有的只是一个潜在的网络服务器。

答案4

如果你手头有安装了 Python 的任何类型的计算机(PC、笔记本电脑、智能手机、raspberryPI……),只需输入:

$ python -m SimpleHTTPServer

或者如果你已经安装了 Node.js:

$ npm install http-server -g
$ http-server

恭喜,您拥有一个网络服务器!

相关内容