Как переписать на конкретный сервер по имени поддомена

Доменное имя указывает на веб-сервер с именем «Rewrite» (приложение asp.net mvc). Я хотел бы запросить базу данных и переписать все страницы с другого веб-сервера в соответствии с именем поддомена. У каждого покупателя есть определенный субдомен. По сути, каждая страница будет генерироваться с другого веб-сервера. Я просто хочу, чтобы веб-сервер «Переписать» отображал страницы с другого сервера, который будет динамически выбираться в соответствии с именем поддомена.

Например:

  • Если user1.mydomain.com запрашивается на сервере mydomain, который будет использовать веб-сервер www1, но URL-адрес на стороне клиента не изменится: user1 .mydomain.com

  • Если user1.mydomain.com/Report запрашивается на сервер моего домена, который будет использовать веб-сервер www1 (то есть www1 / Report), но URL на стороне клиента не изменится: user1.mydomain.com/Report

  • Если user2.mydomain.com запрашивается на сервере mydomain, который будет использовать веб-сервер www2, но URL-адрес на стороне клиента не изменится: user2 .mydomain.com

Я читал, что мы можем добавить правило перезаписи в файл web.config, но, похоже, это статическое решение. Если только у меня не будет автоматизированного процесса для автоматического изменения файла web.config, когда нам нужно создать / изменить / удалить нового клиента (поддомен) и создать длинный список конфигурации. Также у нас может быть несколько тысяч клиентов.

Это решение с новой архитектурой, поэтому веб-серверы могут размещаться в службе приложений Azure или использовать IIS на виртуальной машине.

Кроме того, будет ли это работать с подстановочным знаком SSL?

Любая идея будет приветствоваться.


person Dan    schedule 23.12.2016    source источник


Ответы (1)


Вы описываете обратный прокси-сервер. Вы можете сделать это с помощью IIS, но, как вы упомянули, правила несколько статичны, поэтому для каждой пары «пользователь #» - «www #» вам, возможно, придется настроить новое правило, если, возможно, номер на стороне www не всегда совпадает с номером на стороне пользователя (я предполагаю, что это не так "

https://blogs.msdn.microsoft.com/carlosag/2010/04/01/setting-up-a-reverse-proxy-using-iis-url-rewrite-and-arr/

Возможно, есть более эффективный способ сделать это с помощью NGINX (обратите внимание на модули LUA и MAP как на опции).

person Anthony Mattas    schedule 23.12.2016