我有3个服务,每个服务都有一个任务定义。Nginx服务是从我的客户端和后端负载均衡器上传内容,如下所示:
upstream backend {
server Backend-ALB-ACCNUMBER.us-east-2.elb.amazonaws.com;
}
upstream client {
server Client-ALB-ACCNUMBER.us-east-2.elb.amazonaws.com;
}
server {
listen 80;
client_max_body_size 50M;
location / {
proxy_pass http://client;
}
location /backend {
rewrite /backend/(.*) /$1 break;
proxy_pass http://backend;
}
location /webhook {
proxy_pass http://backend;
}
}
字符串
我的Nginx服务前面有一个负载均衡器,CloudFront使用它将其分发到主域。这是负载均衡器的过度使用案例,还是考虑到每个任务都可以单独扩展,这是有意义的。还要注意,ecs服务客户端和后端需要负载均衡器进行通信。
1条答案
按热度按时间tvokkenx1#
您所做的事情本身并没有什么“错误”,但是所有这些负载均衡器可能有点昂贵。
一种替代方案是摆脱后端负载均衡器,并使用ECS Service Connect作为Nginx容器代理的内部地址。
另一种选择是使用一个面向公共的应用程序负载均衡器,path routing rules将
/backend/*
请求直接路由到后端目标组,/webhook/*
请求直接路由到webhook目标组,所有其他请求都路由到Nginx服务的目标组。