2014-03-04 44 views
0

經過幾天的嘗試不同的解決方案,我正在尋找動態虛擬主機的想法。大規模動態虛擬主機解決方案

這裏就是我想要做的事:

  • 我有多個客戶端訪問每一個自己的網站與自己的子域名(即companyx.website.com)
  • 每個客戶端分配一個幾個文檔根據它們運行的​​應用程序的版本而定。他們的數據庫和客戶端文件由php根據子域引入。
  • 新客戶可通過網頁界面設置網站。

我可以有一個腳本爲apache2生成虛擬主機配置,並將它們鏈接/取消鏈接到啓用網站,每個配置將客戶端發送到其版本的文檔根目錄。但是這需要腳本根權限和apache重新啓動,我不喜歡創建這麼多硬文件。

我試過mod_vhost_dbd,客戶端映射到mysql數據庫中的文檔根目錄。這將工作很好,除非我真的需要mod_rewrite有漂亮的網址(即http://www.website.com/login變成http://www.website.com/index.php/login)。具有此重寫的mod_vhost_dbd會導致內部重定向循環。

我可以想象有一個虛擬主機在Apache中,然後做一些路由在PHP取決於子域。我不確定那會是什麼樣子......

對此有何想法?我也不反對切換到另一臺服務器,比如nginx,但我一直不相信這會有助於這種情況。

任何想法?

回答

0

我知道這是老了,但我有一個答案給你:)

我們使用mod_vhost_alias,並與重定向循環同樣的問題。解決方案是確保您的重定向網址是絕對的而不是相對的。即他們以「/」開頭。

RewriteRule ^$ app/webroot/ [L] 

你這樣做:

RewriteRule ^$ /app/webroot/ [L] 

或者:

RewriteBase/
RewriteRule ^$ app/webroot/ [L] 

好奇,你做了什麼?我們目前有一個SaaS產品,我們正在爲每個新部署創建一個新的DocumentRoot(使用mod_vhost_alias)。我們正在尋找一種節省磁盤空間的新方法。我們正在查看mod_vhost_dbd,或者使用符號鏈接粘貼mod_vhost_alias,但尚未確定。我們想要一些可以適應高可用性設置的東西,而符號鏈接似乎不是一個好的長期解決方案。