我对将计算机用作 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 的机架式服务器
- 光纤网络
服务外部世界
要利用互联网基础设施为全世界服务,您需要:
- 公共 IP 地址
- 公共 DNS 服务器
- 颁发的数字证书信誉良好的证书颁发机构建立安全连接
如果没有这些,你所拥有的只是一个潜在的网络服务器。
答案4
如果你手头有安装了 Python 的任何类型的计算机(PC、笔记本电脑、智能手机、raspberryPI……),只需输入:
$ python -m SimpleHTTPServer
或者如果你已经安装了 Node.js:
$ npm install http-server -g
$ http-server
恭喜,您拥有一个网络服务器!