1

我對這些東西有點新,所以請原諒我的無知。如何用單臺服務器管理不同的環境?

我正在一個web應用程序,我有4個環境;開發,測試,分期和生產。我只有一臺服務器。

我想知道什麼是管理一臺服務器上這3個環境,我猜應該是如下的最佳方式: - 生產可以向所有人 - 測試和應用應該是隻有特定的用戶訪問。

那麼你們如何管理這些環境?

我在考慮允許從我的虛擬主機中的ips列表,但用戶可能沒有靜態IP地址。 有什麼建議嗎?

+2

Apache允許根據像'request uri'或'ip'等條件在apache conf或.htaccess文件中設置envirnoment變量查看'setenvif' http://httpd.apache.org/docs/2.2 /mod/mod_setenvif.html#setenvif – Kamran

+0

你能舉一個例子嗎?我如何在我的場景中使用它? – user2707590

回答

1

如果您有四種不同的環境,您需要設置應用程序的四個不同實例 - 因爲在開發,測試,暫存和生產過程中您不會始終運行相同的代碼。

使用Apache,您可以使用基於名稱的虛擬主機來設置子域並將它們指向每個不同的環境。如果你在服務器上有一個控制面板,它應該爲你處理子域名的創建。如果你需要一次嘗試維斯塔CP - 它是免費的。

您可以在應用程序中使用代碼和配置或在服務器上使用安全指令來控制對不同環境的訪問。這樣做的一個常見方式是使用可信的IP地址,但在這裏要小心 - 您可能會遇到信任此字段的安全問題 - 確保您非常小心信任(或者不信任)X-Forwarded的價值 - 用於標題(由代理使用)。這個網站有一個訪問違反它的開發環境的做法(谷歌:解剖攻擊如何我砍了stackoverflow,我不能發佈任何更多的鏈接)。

如果您使用symfony2等應用程序框架,您會發現它是對環境的控制,並且防火牆在這些情況下可以真正實現。

這裏是掌握和創造環境的文檔:http://symfony.com/doc/current/cookbook/configuration/environments.html

這裏是鏈接到他們的安全食譜:http://symfony.com/doc/current/cookbook/security/index.html

使用的文檔存在,你應該能夠創造環境的具體安全配置。

+0

我正在使用Yii2 ans來創建多個環境不是問題..虛擬主機也不是.. 但問題是如何處理它,並使測試和分級變得像世界上看不見的。當所有3個服務器都在同一臺服務器上時,是否有可能將測試和暫存放在vpn後面,而不是產品? 您如何使用存儲庫來管理環境? 開發承諾回購,然後用repo更新測試,然後用測試rsync分段然後用分段進行rsync prod ..這樣很好嗎? – user2707590

相關問題