CNAME в стиле SaaS с помощью Apache2
Итак, у меня есть приложение Rails за Apache. Он работает через Thin, но все это действительно не имеет значения. У меня проблемы с работой моих CNAME в стиле SaaS.
В настоящее время у меня есть два разных типа учетных записей, один из которых платный, используя
CUSTOMER_DOMAIN.com CNAME MYAPP_DOMAIN.com
стиль доменов, а другой использует стиль Freemium:
subdomain.MYAPP_DOMAIN.com
Субдомен отлично работает, так как у меня есть ServerAlias *.MYAPP_DOMAIN.com
в моей конфигурации Apache VirtualHost.
Поэтому, чтобы моя платная версия работала, у меня есть пара вариантов:
- добавлять
ServerAlias CUSTOMER_DOMAIN.com
вход в мой конфиг Apache. - Перейдите на IP-базу VirtualHosting
- Прокси-сервер перед Apache для обмена
HTTP_HOST
сHTTP_X_FORWARDED_SERVER
и передать это через прокси-сервер Apache приложению.
Очевидно, что решение 1 не подходит для человеческого масштаба. Решение 2 кажется, что это, вероятно, правильное решение, но оно не особо задумывалось над этим. Если бы я пошел с решением 3, я бы, вероятно, отказался от Apache и просто перешел бы из Nginx прямо в свое приложение, которое в настоящее время не обсуждается с управлением.
Так есть ли другое решение, возможно, напрямую через Apache, которое решит это? Я думал о модификации заголовков сам, как в Rails before_filters
работает с контроллерами, но, оглядываясь по сторонам, я не могу найти ничего в Apache. В идеале я хотел бы поменять местами заголовки до того, как Apache попадет в VirtualHost, но, боюсь, я ничего не могу найти. Главное, что я не могу испортить другие приложения, которые также размещаются через тот же экземпляр Apache. Идеи? Предложения?