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.

Поэтому, чтобы моя платная версия работала, у меня есть пара вариантов:

  1. добавлять ServerAlias CUSTOMER_DOMAIN.com вход в мой конфиг Apache.
  2. Перейдите на IP-базу VirtualHosting
  3. Прокси-сервер перед Apache для обмена HTTP_HOST с HTTP_X_FORWARDED_SERVER и передать это через прокси-сервер Apache приложению.

Очевидно, что решение 1 не подходит для человеческого масштаба. Решение 2 кажется, что это, вероятно, правильное решение, но оно не особо задумывалось над этим. Если бы я пошел с решением 3, я бы, вероятно, отказался от Apache и просто перешел бы из Nginx прямо в свое приложение, которое в настоящее время не обсуждается с управлением.

Так есть ли другое решение, возможно, напрямую через Apache, которое решит это? Я думал о модификации заголовков сам, как в Rails before_filters работает с контроллерами, но, оглядываясь по сторонам, я не могу найти ничего в Apache. В идеале я хотел бы поменять местами заголовки до того, как Apache попадет в VirtualHost, но, боюсь, я ничего не могу найти. Главное, что я не могу испортить другие приложения, которые также размещаются через тот же экземпляр Apache. Идеи? Предложения?

1 ответ

ServerAlias *

Как последняя запись, вы бы попробовать?

Другие вопросы по тегам