Назад | Перейти на главную страницу

Верно ли, что мне все еще нужны записи vhost для пользователей, указывающих запись CNAME на мое приложение?

Пользователь получает поддомен в моем приложении, customer.myapp.com. Поскольку пользователи захотят использовать свой собственный домен, я ожидаю, что они установят запись CNAME, указывающую customer.com на customer.myapp.com. я был надеясь чтобы избежать создания записи vhost для каждого клиента, но я думаю, что это то, что мне нужно сделать. Я не могу найти однозначного ответа, так что правильно ли я предполагаю это? Если да, то как лучше всего это сделать? Может ли мое приложение программно редактировать / добавлять vhosts? Я хочу быть под рукой, когда клиент подписывается на мою услугу. Как с этим справляются такие сервисы, как Shopify и Tumblr?

Возможно, вас может заинтересовать mod_vhost_alias http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html. Вместо того, чтобы настраивать каждый домен, вы настраиваете инструкцию, указывающую apache на поиск DocumentRoot домена по пути, содержащему это доменное имя.

Вы можете использовать каталог ServerAlias ​​(это дополнение к ServerName). Требуется список «других» имен для виртуального хоста.

Более сложный в реализации способ - использовать mod_rewrite, который также можно использовать для vhosts. Это может быть лучшим вариантом, если вы перейдете к сотням или тысячам имен для vhost. Но используется редко. Он имеет большой бонус в виде ненужных перезагрузок Apache. Некоторые документы здесь: http://httpd.apache.org/docs/2.2/rewrite/vhosts.html

Изменить: я не думал и не упоминал о параметре перезаписи: http://httpd.apache.org/docs/2.4/rewrite/rewritemap.html

Я надеюсь, что «большие сервисы» написали что-то более эффективное для своих сценариев использования!

Я видел, как это делалось в компании, в которой работал, но основал это не я. Немного расширяя ответ Флориана, есть сообщение в блоге, в котором рассказывается, как это сделать, и объясняется, как это работает: https://muffinresearch.co.uk/redirecting-subdomains-to-directories-in-apache/