Как настроить подстановочные знаки IIS для поддоменов учетных записей (например, Basecamp)?

8

По сути, я работаю над приложением SaaS, в котором я хочу предоставить подписчикам собственный субдомен для доступа к их информации (в коде я буду использовать первую часть субдомена для использования в качестве имени своей учетной записи), аналогично тому, как Basecamp et all Работа. Например, у подписчика может быть URL acme.myapp.com. Поскольку может быть сотни подписчиков, я не могу просто добавить отдельный заголовок хоста для каждого клиента.

Apache позволяет вам указать подстановочный знак (*) и перенаправить acme.myapp.com на myapp.com, где я могу выполнить свою логику для получения имени учетной записи пользователя на основе субдомена. Я не уверен, как автоматически сделать это с IIS (Прошло много времени с тех пор, как мне пришлось настраивать IIS для всего, кроме одного сайта).

Кроме того, есть ли какие-то специальные положения, которые мне нужны для этого? Когда мое приложение будет готово и я ищу хостинг для него, понадобится ли мне что-то конкретное от хоста, которое ограничит мой выбор? Я также подумывал об использовании Windows Azure, чтобы воспользоваться преимуществами облака - смогу ли я сделать это, если перейду на Azure в качестве хостинг-платформы?

Уэйн Молина
источник
Какая версия IIS это, 6 или 7
Сэм Коган
IIS7 (локальная коробка под управлением Win7). Хостинг, вероятно, будет на сервере 2008, поэтому я всегда могу предположить, что IIS7.
Уэйн Молина

Ответы:

5

Как упоминал Джо, вы бы делали это больше с DNS, чем с IIS.

IIS не поддерживает доменные имена * .domain.com. Вместо этого вы должны создать сайт в IIS, в котором нет заголовков узлов, и отвечать на все запросы на этот IP, которые не были получены другими сайтами с заголовками узлов. Затем вы должны создать свою DNS-запись с подстановочными знаками, чтобы указать IP-адрес этого сайта и готово.

Сэм Коган
источник
Таким образом, нет никакого способа «подделать» это, не имея настройки домена и не делая это с DNS? Я спрашиваю, потому что я хотел бы проверить часть учетной записи (например, acme.myapp.xxx извлекает учетную запись для Acme), но если я правильно понимаю, это означает, что я не могу проверить это с IIS, если я не куплю домен и не настрою вверх по IP-адресу?
Уэйн Молина
2
Ну, если вы просто хотите его протестировать, вы можете настроить IIS, а затем поместить в свой локальный файл HOST некоторые записи для поддоменов, которые вы хотите протестировать, чтобы они указывали на ваш IIS-сервер, это позволит вам тестировать их на своей машине без покупка домена.
Сэм Коган
Пока у вас есть приложение на порт в IIS.
Марк Климент
2

Если я вас правильно понимаю, вы можете использовать DNS для этого. Предполагая, что myapp.com является вашим доменом, в DNS-зоне myapp.com просто добавьте запись CNAME (acme), которая указывает на запись A для вашего веб-сайта (www.myapp.com). Это отправит их на ваш основной веб-сайт, где ваш код возьмет на себя и перенаправит их в соответствующее приложение.

Вы также можете использовать DNS-запись с подстановочными знаками (*), которая будет перехватывать все, например acme.myapp.com, joeschmoe.myapp.com и т. Д.

joeqwerty
источник