Jon*_*Sud 3 nginx amazon-ec2 amazon-ecs docker
我在 AWS ECS 中使用 Docker。我有一台 EC2 机器,带有 AWS ECS 的 docker 代理,ECS 任务包含 3 个容器:
我想支持非常巨大的流量。我需要设置AWS负载均衡器吗?或者我对nginx上游的设置就足够了?
nginx 配置示例:
upstream appwww {
server app-www:3000;
}
server {
server_name my.home.net;
location / {
proxy_pass http://appwww;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
listen 443 ssl http2; # managed by Certbot
ssl_certificate......; # managed by Certbot
ssl_certificate_key........ # managed by Certbot
include /.......# managed by Certbot
ssl_dhparam /.....pem; # managed by Certbot
}
server {
if ($host = my.host.net) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name my.host.net;
return 404; # managed by Certbot
}
Run Code Online (Sandbox Code Playgroud)
编辑
我画了当前的架构,我想添加LoadBalancer,我应该把它放在哪里?自动缩放适合这张图吗?我应该使用一台或多台 ec2 机器吗?多容器?多上游?
我建议您首先使用负载均衡器,因为:
您可以通过配置负载均衡器与 AWS WAF 集成来保护自己免受恶意攻击
您将来可以轻松添加更多目标
缺少负载均衡器需要您在应用程序级别配置 SSL
它支持健康检查。
注意:考虑使用 AWS S3 和 cloudfront 来提供静态内容
应用程序负载均衡器现在支持基于主机的路由,这意味着它可以使用指向多个网站的多个域(或子域)。除了基于主机的路由之外,它还支持基于路径的路由。例如,当mydomain.com/web1指向时website1,mydomain.com/web2可以指向website2。
我想不出你需要使用 nginx 的原因(除非我遗漏了一些东西)。
所以回答你的问题,我会这样做。
参考: https: //aws.amazon.com/blogs/aws/new-host-based-routing-support-for-aws-application-load-balancers/
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
5494 次 |
| 最近记录: |