
我有一個關於使用電腦作為網路伺服器的問題。為什麼某台電腦可以成為網路伺服器?哪些功能使它能夠成為網頁伺服器?是否存在電腦無法充當網路伺服器的情況?
答案1
幾乎任何電腦都可以用作[Web]伺服器,只要它可以連接到網路並且可以運行Web伺服器軟體。由於網頁伺服器可以非常簡單,並且有免費且開源的網路伺服器,因此在實踐中,任何設備都可以充當網頁伺服器。
更大的問題是網路方面。為了使系統充當伺服器,其他電腦需要能夠存取它。如果只是在區域網路中使用,則無需擔心;但是,如果要從更廣泛的互聯網使用它,則需要將資料路由到它。這需要與伺服器關聯的靜態 IP 位址(或透過路由器轉送的連接埠),或者可以將網域名稱/子網域對應到不斷變化的動態 IP 位址的外部服務。
(FWIW,你可以買10美元的電腦它可以充當基本的網頁伺服器。
當然,雖然任何設備都可以充當網頁伺服器,但網站的功能可能差異很大,而且廉價的設備(或連接速度慢)可能無法滿足特定網站的需求。
我注意到上面所有內容都討論了 Web 伺服器 - 但幾乎任何類型的伺服器都可以這樣說。
答案2
這一點也不棘手。它僅取決於您對“網頁伺服器”的定義。
在像微控制器這樣簡單的設備上運行“網頁伺服器”是完全可能的。
讓我們考慮一下最基本的 Web 伺服器需要做什麼。它需要向客戶端輸出一些文本,甚至不一定是 HTML。它需要知道請求是請求,並做出適當的回應。如果您的「用戶端」位於本地,您甚至不需要網路連線。這將是一個完全毫無意義的網頁伺服器。
這將是相當於網頁伺服器其中之一。
為客戶端添加網路連線(乙太網路很好,但沒有技術原因無法連接到在 wifi 上運行的 Web 伺服器)並且能夠從客戶端進行路由會更好。
5 澳元ESP8266– 一個廉價、最小的帶有 wifi 的微控制器可以處理大部分內容,甚至可以處理基本的動態內容
我使用類似的東西來使用 Python 進行快速文件共享。在微控制器上編寫這樣的東西甚至在手機上運行它仍然是完全可能的。
靜態內容很無聊。添加動態語言,您需要開始考慮更重的系統。運行 Linux 或 Windows 的東西都很好。
此時,您談論的是消費者路由器、在 UI 上使用網頁的小型應用程式等等。
Web 伺服器甚至不是一個複雜的問題,可以用以下語言編寫五行 bash並在Linux上運行。現在厄運……但任何可以執行 doom 的系統都可以執行 Web 伺服器。
A好的能夠處理給定負載的 Web 伺服器設定有些棘手。
答案3
最低限度
字面上地,任何如果電腦具備以下條件,則可以成為網路伺服器:
- 網路連線
- 一個非常簡單的網頁伺服器應用程序,像這樣。
但這就足夠了嗎?現在,這是一個棘手的問題。
為 Intranet 提供服務
要讓電腦成為網頁伺服器,為整個社區(例如學校、公司、博物館)提供現代網頁或網路應用程式:
- 能夠同時回應多台電腦的硬體。也許運行 Linux 或 Windows XP 的舊電腦就可以了。
- 具有足夠頻寬的高速網路連接,例如 1 Gbit/s 乙太網路或 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
恭喜,您擁有了網頁伺服器!