Apache-2.2
使用 Nginx 進行嚴格的安全性和虛擬主機隔離?
我目前設置了一個 Apache Web 伺服器,在該伺服器下,每個虛擬主機都使用 HTTPD-ITK 和 AppArmor 模組進行隔離。每個虛擬主機的工作人員由伺服器設置uid/setgid,然後放置在AppArmor 配置文件中。
我正在尋找使用 Nginx,但我找不到任何有關設置它的文件,以便工作程序不是在所有虛擬主機之間共享,工作程序是每個虛擬主機(因此可以是 setuid / setgid)。在 Nginx 下有沒有辦法做到這一點?
我最終通過為每個網站執行一個 Nginx 實例以及一個將代理反向到每個網站的主 Nginx 來解決這個問題。這與 PHP-FPM 相結合,為需要它的站點提供 PHP。
我已經在 GitHub 儲存庫中放置了一個處理生成 Nginx 配置的框架,供任何人使用:https ://github.com/hach-que/Nginx-Secure 。
nginx 與 Apache 完全不同(除了作為 HTTP 伺服器)。它的模型是 nginx 本身沒有在程序內部執行某些 Web 應用程序的“工作者”。
nginx 基本上對 http 請求進行“前端終止”,然後將工作交給後端伺服器,後端伺服器可以再次通過 HTTP 或特定協議(如 FCGI、mod_passenger 等)完成。
因此,無需直接在 nginx 中執行您對 Apache 所做的操作。這是一個特性:它允許通用架構更加精簡,最終速度更快,對 CPU 功率和記憶體等資源的要求更低。