Как поддерживать пользовательские домены (например, WordPress) в IIS/ASP.NET

Я хотел бы знать, возможно ли с помощью IIS и ASP.NET (и, в идеале, что-то, что можно использовать в учетной записи общего хостинга, но это не обязательно), чтобы имитировать способность WordPress.com разрешить конечным пользователям использовать свои собственные доменные имена.

У WordPress есть пользователи, владеющие собственными доменами, которые изменяют настройки DNS домена, чтобы указать на собственный DNS WordPress. Я предполагаю, что это не то, что можно было бы сделать в учетной записи общего хостинга, поскольку это потребует добавления записи в таблицу DNS-сервера для каждого пользовательского домена пользователя.

Тем не менее, для справки в будущем, можно ли это автоматизировать программно, возможно, на VPS?


person devios1    schedule 24.04.2009    source источник


Ответы (2)


Я предполагаю, что это не то, что можно было бы сделать на учетной записи общего хостинга.

Вы почти правы. Сайт по умолчанию в IIS прослушивает все соединения на порту 80 для IP-адреса по умолчанию.

Вы можете добавить дополнительные сайты тремя способами:

  1. Добавьте новые сайты, прослушивающие разные порты. Это не совсем практично, если вы хотите, чтобы «обычные» сайты загружались через порт 80.

  2. Добавьте в поле больше IP-адресов (это не так уж просто) и настройте новые сайты IIS для независимого прослушивания новых IP-адресов.

  3. Добавляйте новые сайты на сервер, прослушивая разные «заголовки хоста» (доменные имена для вас и меня), но на одном и том же (по умолчанию) IP-адресе.

Так называемый «общий хостинг» обычно использует вариант 3, потому что хостинговая компания может обойтись только одним IP-адресом, возможно, для сотен сайтов. Поэтому вам придется пройти через утомительный процесс добавления каждого заголовка хоста в поле, и хотя я почти уверен, что это можно сделать с помощью Wscript, я не эксперт в этой области.

Если вы действительно хотите вникнуть в это, вы можете написать модуль ISAPI для перехвата вызовов и настроить какую-нибудь умную базу данных/хеш-таблицу доменных имен и целевых папок на сервере в качестве разных сайтов.

Суть в том, что в Windows есть разные способы добиться этого. Вероятно, не так просто, как на платформе * nix, где все супер-скрипты.

person Greg B    schedule 24.04.2009
comment
Несомненно, на Windows будет сложнее, но сейчас мне достаточно просто возможности. Я только что создал учетную запись EC2 и мне интересно, даст ли это мне возможность сделать это, однако на данный момент я очень мало знаю. Позволит ли мне EC2 на базе Windows управлять IIS указанными вами способами? - person devios1; 25.04.2009
comment
Боюсь, у меня нет опыта работы с EC2, но из того, что я понял, это просто место для запуска стандартного веб-приложения. То, о чем вы говорите, выходит за рамки стандарта. Я думаю, вам нужно будет найти какой-нибудь выделенный хостинг, чтобы добиться этого. - person Greg B; 25.04.2009
comment
Хорошо спасибо. Я все равно продолжу возиться с EC2 - я мог бы также научиться его использовать. :) - person devios1; 25.04.2009

Что мы делаем, так это настраиваем запись DNS с подстановочными знаками для нашего домена. Таким образом, любой домен, который вводит пользователь, будет разрешаться на наш веб-сайт, если он заканчивается на «.mydomain.com». Затем наш код .Net просто просматривает входящий заголовок «HOST» и обслуживает содержимое, соответствующее этому доменному имени.

person David    schedule 24.04.2009
comment
Это еще одна вещь, которую я хотел бы сделать, но сейчас меня интересует поддержка полностью настраиваемых доменных имен, принадлежащих пользователям. - person devios1; 25.04.2009