Вопрос или проблема
Мы хотим запустить 2 отдельных сервера: один устаревший сервер и один новый сервер.
Все новые пользователи будут размещены на новом сервере, а текущие пользователи пока останутся на устаревшем сервере. Мы хотим сохранить доменное имя, которое они используют, одинаковым для обеих ситуаций. Когда мы будем готовы, мы отключим устаревший сервер и переведем всех пользователей на одну машину.
Пользователи используют разные адреса веб-сайтов, например (только для примера):
myWebsite.com.au/User1 myWebsite.com.au/User2
Есть ли способ настроить правила в нашей DNS-записи, которые указывают, что запросы на определенный адрес идут на определенный IP-адрес? Это похоже на настройку балансировки нагрузки, но я пока могу найти только способы случайного переключения между серверами, а не создания правил для переключения.
Есть какие-либо советы?
Вы можете настроить обратный прокси-сервер, который будет перенаправлять URL-адреса с именем пользователя на правильный сервер. Подробнее о настройке обратного прокси-сервера с использованием IIS URL Rewrite можно найти здесь: http://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis
Ответ или решение
Теория:
Ваша задача заключается в создании системы, которая позволит распределять запросы к одному и тому же доменному имени между двумя серверами: старым легаси-сервером и новым сервером. Однако изначальные запросы не смогут быть направлены на разные IP-адреса только с помощью изменений в DNS-записях, так как DNS функционирует на уровне доменов и IP-адресов и не знает, какой конкретно путь внутри домена запрашивается. На этом этапе DNS может только направлять запросы для одного домена на один или более IP-адресов, но не может применять логику исходя из запрашиваемого пути.
Пример:
Классическим примером такой задачи является использование прокси-сервера, который находится между клиентами и вашими серверами, выполняя функцию распределения запросов. Например, при получении запроса на myWebsite.com.au/User1, прокси может направить его на IP-адрес легаси-сервера, а запрос на myWebsite.com.au/User2 – на IP-адрес нового сервера. Таким образом, вам необходимо организовать структуру так называемого «обратного прокси» (reverse proxy), который будет контролировать логическое распределение запросов на серверы.
Применение:
Для решения этой задачи, рекомендуется настроить обратный прокси-сервер, например, с использованием URL Rewrite в IIS. Такой сервер будет перенаправлять запросы на основе заданных правил. Он анализирует URL и перенаправляет трафик на соответствующий сервер в зависимости от заданной вами логики.
Вот пошаговая инструкция применения:
- Установите IIS на сервере, который будет выполнять роль обратного прокси.
- Настройте модуль URL Rewrite на этом сервере.
- Создайте правила перенаправления, которые будут анализировать URL-адреса и распределять их по указанным IP-адресам. Например, можно создать правило, проверяющее наличие определенного значения в URL (
/User1
) и перенаправляющее такие запросы на легаси-сервер, а запросы с/User2
– на новый сервер. - Публикация и тестирование: протестируйте работу прокси, чтобы убедиться, что запросы корректно распределяются между серверами.
Таким образом, основой вашего решения будет использование обратного прокси-сервера в связке с настройками URL Rewrite, что позволит вам контролировать распределение пользователей по серверам, сохраняя при этом один домен.