Azure - веб-роли - фильтрация запросов на основе хоста
Недавно мы столкнулись с проблемой, что наша веб-роль в Azure получила IP-адрес, который ранее был связан с трекером theraterate. Это означало около 5 000 000 запросов, которые были 404. Проблема DNS-сервера, я считаю.
Я хотел бы отфильтровать запросы, которые указывают на другие хосты, чем наши сайты. Можно ли добиться этого через атрибут hostHeader в
<ServiceDefinition name="AB.AzureSite" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
<WebRole name="AllBlacksdotcom" vmsize="Medium">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader=""/>
</Bindings>
</Site>
</Sites>
Мы бы хотели, чтобы запросы не попадали на наши сайты вообще (например, запрос, предназначенный для хоста track.thepiratebay.org). Это возможно?
2 ответа
Там нет никакого способа полностью skip /turn off
обработка нежелательных запросов. Однако используя hostHeader
Атрибут примет вас довольно близко с некоторыми компромиссами. Проверьте документацию здесь.
Есть как минимум один улов:
Когда вы используете заголовок узла, ваш сайт будет отвечать только на запросы с этим заголовком.
Вы не можете использовать подстановочные знаки в
hostHeader
приписывать.
Этот атрибут напрямую применяется к host header
обязательное свойство сайта в IIS. И как таковой - подстановочные знаки не поддерживаются.
Так что только запросы, которые описывают то, что вы определили в hostHeader
попадет на ваш сайт. Остальные запросы, тем не менее, в любом случае окажутся на Default Web Site
в IIS.
Вы можете отключить Default Web Site
с помощью задачи запуска ( пример изменения настроек IIS с помощью задач запуска).
Если вы находитесь на уровне заголовка узла, трафик уже попадает в ваши экземпляры роли. Единственный способ заблокировать трафик до этого - использовать списки контроля доступа (ACL) на ваших конечных точках.
Если проблема связана исключительно с конкретным IP-адресом, с которым вы столкнулись, вы можете удалить, а затем повторно развернуть пакет облачных сервисов, который назначит новый IP-адрес.