2011-05-10 67 views
3

我是從Linux開始freeBSD的新手。FreeBSD監獄和插座

我讀到關於jail的信息,該解決方案聽起來非常適合Server Systems。 所以我的網絡服務器的想法是創建3個監獄。 一個jail for mysql,一個用於nginx,一個用於php-fpm。 現在監獄必須相互溝通。我怎麼做?

Over IP?這將是一個很大的開銷,但安全。 下面是一個例子:

  • CLIENT
    • - > TCP/IP - > NGINX
    • - > TCP/IP - > PHP-FPM
    • - > TCP/IP - > MYSQL
    • - > TCP/IP - > PHP-FPM
    • - > TCP/IP - > NGINX
    • - > TCP/IP - >客戶端

與socket:這將是一個安全的洛杉磯..

  • 在主機系統上創建一個目錄
  • 在監獄創建一個目錄
  • 合併目錄

您使用哪種解決方案?或者您有更好的解決方案嗎?

回答

3

我不會分開php-fpm,但它是可能的。目前IP通信的開銷並不大,考慮到數據庫和php處理器需要做的處理要大得多,這並不重要。特別是因爲沒有涉及實際的電線。數據包通過環回結構通過接口進行路由,並且不會觸及導線。

分離的好處是,你可以移動監獄到另一臺物理機器,如果需要的話,移動監獄是一件輕而易舉的事情。

爲了說明爲什麼不在一個單獨的監獄中移動php-fpm,修改網站成爲靜態內容(圖像)和動態內容(php文件)的兩任務流程。優點是webserver軟件中的漏洞無法修改php代碼。這也是爲什麼你不應該把nullfs你的php代碼放到網絡服務器監獄裏,如果你打算分開它,它會打敗它的優勢。

1

我真的不知道這是不是最好的解決方案,但如果你可以使用Unix domain sockets你可以在三個監獄之間共享一個安裝。命名空間是孤立的(它們不能在共享掛載點之外創建套接字),並且它們應該能夠進行通信。

要創建共享安裝,您可以使用nullfs安裝。一個不錯的(相當先進的)guide about jails也談到nullfs坐騎。當然,這個掛載點只能用於的套接字,其他文件應該保持獨立。

同樣,我不知道這些應用程序是否可以通過Unix套接字進行通信,但是如果它們可以設置的話。