在過去的 6 或 8 個月裡,我一直在使用 .NET 進行大量工作。我了解了 Web 服務(儘管我不是專家),最近我對 Web 伺服器產生了濃厚的興趣,我真的想建立自己的伺服器。我有一台運行 Windows Server 2008 的舊桌上型計算機,但我住在宿舍裡,沒有靜態 IP。我知道有解決方案,但我想先更了解我在做什麼。我想要設定的是多功能伺服器,我可以用它來託管網站/android 應用程式。
我聽說 LAMP 伺服器比 Windows/IIS 伺服器更可自訂(因此通常更有效率)。這是真的?由於 Apache 如此普遍,我真的很想更多地了解它是如何工作的,並真正學習如何使用它。走 LAMP 路線唯一讓我緊張的是命令列(我 19 歲,是在 GUI 環境下長大的)。我以前使用過 unix 命令行,並且對基本命令/檔案系統導航很滿意,但是從命令列配置諸如 Web 伺服器之類的東西讓我感到頭暈目眩。我可以取得幾乎所有 Microsoft 軟體的免費副本(我很喜歡當學生),但我不想只犧牲我對 Web 伺服器的理解來換取 GUI。
關於走什麼路線有什麼建議嗎?我對使用 Windows 的擔憂是我永遠不會真正理解 Web 伺服器,因為對我來說一切總是被封裝和簡化。我還想知道一個出色且高效的伺服器是由什麼組成的。有什麼建議/書籍/資源推薦嗎?
答案1
您選擇的平台(Windows IIS、Linux 和 Apache)很大程度上取決於您的需求。現在,您的要求基本上不存在,因為您只是設定一個網頁伺服器來玩。選擇與您的長期目標最相關的技術堆疊(並且由於您已經使用 .NET,因此可能會轉向 Windows IIS)並使用它、深入研究它並學習它。
使用 LAMP 堆疊並不會本質上使您成為超級管理員(也許是 LAMP 方面的超級管理員...),使用 IIS 也不會本質上使您成為超級管理員"never really understand web servers because everything would always be encapsulated and simplified for me"
。
您想要學習多少以及您想要了解某項技術的程度在很大程度上取決於您的興趣和動機,而不是技術本身。
答案2
您想設定網頁伺服器嗎?做吧。它不必是長達一年的學習,您可以在幾分鐘內運行 IIS,並在一兩個小時內在虛擬機器中安裝帶有 Apache 配置的 Linux。
從命令列設定 Apache 大致意味著“yum install apache”,然後是“使用文字編輯器編輯 /etc/httpd/httpd.conf”(特定於 Linux 發行版)。這並不是一個巨大的控制台命令鏈來進行大量的設定更改。
我聽說 LAMP 伺服器更可自訂(因此通常更有效率)
那不符合。更可定制,是的,更有效率,完全取決於你所說的「高效」是什麼意思。 LAMP 中的 P 通常指“PHP、Perl、Python、(Ruby)”,如果您聲稱它們比 IIS/ASP.Net 更有效率,您將會遇到一些爭論。
如果你想要一個輕量級(快速,「高效」?)的網頁伺服器,nginx 更值得一看。
關於走什麼路線有什麼建議嗎?我對使用 Windows 的擔憂是我永遠不會真正理解 Web 伺服器,因為對我來說一切總是被封裝和簡化。
什麼,沒人知道 IIS 是如何運作的嗎?
我還想知道一個出色且高效的伺服器是由什麼構成的。
StackOverflow(Serverfault.com 和朋友)在 Windows/ASP.Net/SQL Server 上運行,並且有一些關於他們如何在網路上執行此操作的有趣帖子(例如http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html)
答案3
根據您所尋求的理解程度,有多種方法可以解決此問題。
要完全深入地理解,請深入研究程式碼。顯然你需要一些嚴肅的技能才能做到這樣的事情。
否則,最好的學習方法就是閱讀和玩耍。以不同的配置設定網站。提供免費託管一些朋友的網站(只需確保他們知道這是實驗性的),並託管一些您自己的網站。嘗試不同的功能。閱讀線上文件。在圖書館隨機拿一本有關該主題的書,在通勤時閱讀。
此外,Windows Web 伺服器還具有一些非常進階的功能。認為 LAMP 一定能夠大幅提高可自訂性的想法並不總是正確的。我自己是 Linux 用戶,但我看過 Windows 用戶使用 IIS 完成非常進階的事情。擁有 GUI 會消除 1337 命令列瘋狂技能的印象,但請記住,這可能只是一個印象。
舉個例子,據我所知,Stack Exchange 網路(因此包括此網站)在 Windows Web 伺服器上運行。這表明您可以使用 Windows 做出偉大的事情。
答案4
如果你學習並使用LAMP,你會比學習Windows+IIS更能理解各種技巧。