Networking

使用專用 Web 伺服器有哪些優勢?

  • August 25, 2016

詳細來說,使用專用的 Web 伺服器(即 lighttpd 或 nginx)並按照 Web 伺服器的指示執行程序(即 Swift / Python)有什麼優勢?

具體來說,這與簡單地執行 Web 框架(即 Perfect / Flask)並使用其內置路由相比如何?

這是一個標準的“網路安全架構”問題。

一個典型的 3 層應用程序將具有

  1. 網路層
  2. 應用層
  3. 數據庫(或其他後端)層。

這個想法是為了幫助分離職責。

因此,“Web 層”是所有傳入流量的初始終止點。您可能在這裡完成了 SSL 工作。此時,您可以注入諸如“Web 應用程序防火牆”之類的東西,它可以檢查傳入流量中是否存在類似於 SQL 注入攻擊或路徑遍歷攻擊等的東西。

在這裡終止的好處是,像 apache 或 nginx 或 lighttpd 這樣的前端服務專門用於處理惡意流量,記錄錯誤請求,更“安全”。有人想出了一種攻擊 Web 伺服器的新方法(帶有錯誤 TCP 位設置的數據碎片?),您肯定會修補頂級 Web 伺服器;您的 Web 框架可能不是最重要的。

只有“乾淨”的流量才會傳遞到應用層(這種通信也可能是 HTTP,但來自更受信任的來源)。您的應用程序可以與後端對話。

現在,理想情況下,這些層也將位於具有網路路由規則的不同伺服器上,這樣外部請求服務根本無法訪問“應用程序伺服器”。流量可以到達您的應用伺服器的唯一方式是通過前端 Web 伺服器,即使在較低的 TCP 層也是如此。但即使沒有這個,您也可以獲得一些安全優勢。

次要優勢意味著您的前端服務可以是 HA 代理,將負載分配到多個後端應用程序伺服器。

第三個優勢將允許您從前端 Web 伺服器提供靜態文件(例如圖像、CSS、javascript),並且只有繁重的特定於應用程序的內容才會傳遞給您的應用程序。您可以添加記憶體層等。在這裡可以有性能優勢。

因此,從企業的角度來看,有很多充分的理由將它們分開。但它確實需要更多的工作來配置和設置。

你想走多遠是個人喜好。

引用自:https://unix.stackexchange.com/questions/305584