我build立了ALB负载均衡器。 我想阻止转发请求到特定的path,如不要去mydomain.com/admin/
当前的听众设置如下所示:
1 Arn IF Path is /service/ forward to tg1 last HTTP80:default action IF Requests otherwise not routed forward to tg1
所以我想只允许stream量path:/ service /(mydomain.com/service/)not / admin /
如何防止stream量走向负载均衡的特定path?
任何帮助,将不胜感激。
创build一个空的目标组。 不pipe你喜欢什么,都可以称之为blackhole 。 如果您有多个VPC,请select正确的VPC。 新目标组的其余参数可以保留为默认值。 不要将任何实例分配给目标组。
为您的ALB上的每个听众创build一个规则, IF path is /admin* THEN Forward to blackhole 。 把它放在清单上,因为它需要。
由于目标组中0个目标的100%总是不健康,因此ALB将始终无法将请求传递到后端,因此当任何匹配此path的请求到达时,将引发错误。 通配符*匹配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 xxxx.. 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上的特定path模式的目的。