IIS ARR + фильтрация запросов?
Мы стремимся реализовать балансировку нагрузки для нашего сайта asp.net с помощью IIS Application Request Routing (ARR). Взвешенная круглая Робин кажется неплохой отправной точкой, но мы хотели бы сделать что-то нестандартное, и мы надеемся, что кто-то там может помочь направить нас в правильном направлении.
Мы хотели бы иметь возможность направлять определенные запросы на определенные серверы, но оставшиеся запросы работают как циклический перебор на оставшиеся серверы с балансировкой нагрузки. Например, рассмотрим следующие пять запросов, которые поступают в наш балансировщик нагрузки с ARR:
1.) https://example.com/api/myendpoint/36321
2.) https://example.com/somepage.aspx
3.) https://example.com/documents/upload.aspx
4.) https://example.com/orders/orderdetails.aspx
5.) https://example.com/anotherpage.aspx?p1=432
Мы бы хотели, чтобы запрос № 1 был перенаправлен на наш сервер API, основываясь на "/api/" в URL. Мы бы хотели, чтобы запрос № 3 был перенаправлен на наш сервер документов на основе "/documents/" в URL. Остальные три запроса должны следовать циклическому циклу и распределяться в соответствии с нашими общими серверами с балансировкой нагрузки.
Возможно ли это с помощью ARR? Если так, то как бы мы это настроили? Если нет, какие инструменты доступны для этого?
Спасибо!
1 ответ
Если вы хотите придерживаться исключительно IIS, я бы следовал приведенной ниже схеме. Хитрость будет в том, чтобы настроить ваши правила, но в целом вам потребуется 3 переписывания:
- Напишите правило, которое соответствует./ API /. и направьте его на ваш сервер API.
- Напишите правило, которое соответствует./ документы /. и направьте его на ваш сервер документов.
- Напишите правило, которое не соответствует./ документы /.,/ API /. и направьте его на свою круговую ферму серверов. Для циклического перебора вы должны прочитать эту статью: http://www.iis.net/learn/extensions/configuring-application-request-routing-%28arr%29/http-load-balancing-using-application-request-routing и эта статья: http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/define-and-configure-an-application-request-routing-server-farm
Чтобы узнать больше о написании правил, см.: http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module