使用 Apache2 的 SaaS 样式 CNAME

使用 Apache2 的 SaaS 样式 CNAME

因此,我在 Apache 后面有一个 Rails 应用程序。它通过 Thin 运行,但所有这些实际上都不重要。我无法使我的 SaaS 样式 CNAME 正常工作。

目前我有两种不同类型的账户,一种是付费类型的

CUSTOMER_DOMAIN.com CNAME MYAPP_DOMAIN.com

一个使用风格域名,另一个使用免费增值风格:

subdomain.MYAPP_DOMAIN.com

ServerAlias *.MYAPP_DOMAIN.com由于我的 Apache VirtualHost 配置中有子域名,因此它可以完美运行。

因此,为了使我的付费版本正常运行,我有几个选择:

  1. ServerAlias CUSTOMER_DOMAIN.com条目添加到我的 Apache 配置中。
  2. 更改为基于 IP 的虚拟主机
  3. 与 Apache 前面的代理进行交换HTTP_HOSTHTTP_X_FORWARDED_SERVER通过 Apache 代理将其传递给应用程序。

显然,解决方案 1 的可扩展性不佳。解决方案 2 似乎是正确的选择,但我还没有深入研究过。如果我选​​择解决方案 3,我可能会放弃 Apache,直接从 Nginx 转到我的应用程序,而这对于目前的管理来说是不可能的。

那么有没有其他解决方案,可能直接通过 Apache 来解决这个问题?我考虑自己修改标头,方式类似于 Railsbefore_filters与控制器一起工作的方式,但环顾四周,我似乎在 Apache 中找不到任何东西。理想情况下,我想在 Apache 到达 VirtualHost 之前交换标头,但恐怕我找不到任何东西。关键是我不能弄乱通过同一 Apache 实例托管的其他应用程序。有什么想法吗?有什么建议吗?

答案1

ServerAlias *

作为最后一条,您会尝试一下吗?

相关内容