Я установил балансировщик нагрузки ALB. Я хочу запретить пересылку запроса по определенному пути, например, не переходить на mydomain.com/admin/
Текущие настроенные слушатели выглядят следующим образом:
1 Arn IF Path is /service/ forward to tg1
last HTTP80:default action IF Requests otherwise not routed forward to tg1
Поэтому я хочу разрешить трафик только по пути: / service / (mydomain.com/service/), а не / admin /
Как я могу предотвратить трафик по определенному пути, который идет к балансировщику нагрузки?
Любая помощь будет оценена.
Вы можете просто выбрать возврат фиксированного ответа по вашему выбору вместо отправки запроса пустой целевой группе, как предложил @Michael - sqlbot.
Для получения дополнительной информации см. AWS. объявление.
Создайте пустую целевую группу. Называйте это как хотите, например blackhole
. Выберите правильный VPC, если у вас их несколько. Остальные параметры для новой целевой группы можно оставить со значениями по умолчанию. Не назначайте никаких экземпляров целевой группе.
Создайте правило для каждого слушателя на вашем ALB, IF path is /admin*
THEN Forward to blackhole
. Поместите это как можно выше в списке.
Поскольку 100% из 0 целей в целевой группе всегда будут неработоспособными, ALB всегда не сможет доставить запрос в серверную часть и, таким образом, выдаст ошибку при поступлении любого запроса, соответствующего этому пути. Подстановочный знак *
соответствует 0 или более символам, поэтому все, что находится по этому пути, фактически отклоняется этим правилом.
$ curl -v xxxx.us-west-2.elb.amazonaws.com/admin
* About to connect() to xxxx.us-west-2.elb.amazonaws.com port 80 (#0)
* Trying x.x.x.x... connected
> GET /admin HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: xxxx.us-west-2.elb.amazonaws.com
> Accept: */*
>
< HTTP/1.1 503 Service Temporarily Unavailable
< Server: awselb/2.0
< Date: Thu, 10 Aug 2017 16:38:15 GMT
< Content-Type: text/html
< Content-Length: 178
< Connection: keep-alive
<
<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body bgcolor="white">
<center><h1>503 Service Temporarily Unavailable</h1></center>
</body>
</html>
* Connection #0 to host xxxx.us-west-2.elb.amazonaws.com left intact
* Closing connection #0
Конечно, ошибка не совсем правдивая, так как она 503 Service Temporarily Unavailable
скорее, чем 403 Forbidden
, но это действительно выполняет цель блокировки определенных шаблонов пути на ALB.