大规模动态虚拟主机解决方案

时间:2014-03-04 17:15:34

标签: php apache2 virtualhost

经过几天尝试不同的解决方案后,我正在寻找动态虚拟主机的想法。

这是我正在尝试做的事情:

  • 我有多个客户使用自己的子域访问自己的网站(即companyx.website.com)
  • 根据客户端运行的应用程序版本,为每个客户端分配多个文档根目录之一。他们的数据库和客户端文件由php引入,具体取决于子域。
  • 新客户可以通过网络界面设置网站。

我可以让脚本生成apache2的虚拟主机配置,并将它们链接/取消链接到启用站点,每个配置将客户端发送到其版本的文档根目录。但这需要脚本root访问和apache重启,我不喜欢创建这么多硬文件。

我尝试过mod_vhost_dbd,客户端映射到mysql db中的文档根目录。除非我真的需要mod_rewrite来获得漂亮的网址(即http://www.website.com/login变为http://www.website.com/index.php/login),否则这样做会很有效。带有此重写的mod_vhost_dbd会导致内部重定向循环。

我可以设想在apache中有一个vhost,然后根据子域在php中做一些路由。我不确定那会是什么样子......

对此有何想法?我也不反对转换到另一个服务器,如nginx,但我不相信这会对情况有所帮助。

有什么想法吗?

1 个答案:

答案 0 :(得分: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但尚未确定。我们想要一些可以很好地扩展高可用性设置的东西,而符号链接似乎不是一个很好的长期解决方案。