Articles of 亚马逊 elb

ELB报告一些请求的backend_status_code为“0”

我在我的ELB日志中发现了一些我不能解释的奇怪条目。 他们都像这样(parsing成JSON): { "backend": "-", "backend_processing_time": "-1", "backend_status_code": 0, "client_ip": "XXX.XXX.XXX.XXX", "client_port": "52084", "elb": "ELB1-PROD", "elb_status_code": 504, "http_method": "POST", "http_version": "HTTP/1.1", "received_bytes": 16051, "request_processing_time": "-1", "request_uri": "https://example.com:443/example/", "response_processing_time": "-1", "sent_bytes": 0, "ssl_cipher": "ECDHE-RSA-AES128-GCM-SHA256", "ssl_protocol": "TLSv1.2", "timestamp": "2015-10-29T04:41:47.251500Z", "user_agent": "client/4.0" } 例如"backend_processing_time": "-1"或"backend_status_code": 0看起来真的很奇怪。 任何想法这可能意味着什么? 我怀疑后端服务器是过载的,但是当发生这些错误时,我们没有比平常更高的负载,并且错误都是由同一个客户端IP触发的。

https ELB后面的http nginx和索引自动redirect

我有一个Amazon ELB,它监听http和httpsstream量。 它后面的实例在端口80上有nginx。仅Http。 所以ELB将https和http转发给nginx的http。 当我向https://example.com/folder等文件夹发送https请求时,会自动将其redirect到斜杠版本http://example.com/folder/,但协议将变为http。 文件夹包含index.html文件。 我认为这是它的工作原理。 有没有什么办法解决这一问题? 即使redirect到https而不是http。 我无法在全球执行https。 我的configuration: http { map $http_x_forwarded_proto $thescheme { default $scheme; https https; } server { listen 80; server_name example.com; location / { root /var/www/html; add_header X1 $scheme; add_header X2 $thescheme; index index.html; } } } 我已经添加了X1和X2头来检查nginx认为使用什么协议,以及ELB是否添加了X-Forwarded-Proto头。 X1是http,X2是示例请求的https。 我发现添加 if (-d $request_filename) { rewrite [^/]$ $thescheme://$http_host$uri/ permanent; […]

阻止AWS ELB设置x-forwarded-proto

我有以下设置: 面向公众的ELB,向 – >发送请求 Nginx实例,发送请求到 – > 内部ELB,发送请求到 – > 节点服务器 我试图切换到应用程序ELB,因为它比传统的ELB更有优势,但它只支持HTTP / HTTPS处理程序,而不像以前使用的TCP,并且当使用应用程序ELB#3似乎覆盖了x-forwarded-proto头文件是由Nginx在#2中设置的。 #4中的节点服务器是执行301redirect来执行https(因为我们也在节点中做pathredirect,为了缩短我们的redirect链,我们同时在节点中做协议redirect)。 有没有办法阻止#3中的ELB设置x-forwarded-proto ?

代理负载均衡器,带宽?

我有一个Amazon Elastic Load Balancer。 我无法将域apex – domain.com设置为ELB,因为Amazon不提供IP。 如果我: build立一个新的EC2实例(它有自己的IP) 设置从EC2到ELB的反向代理(HAProxy?Apache?Nginx?) 将我的DNS指向代理的新EC2实例 我将面临什么后果? 这是否使ELB毫无意义,因为我的单一EC2实例是一个失败点? 如果ELB中的每个实例每天都获得100 GB的带宽,EC2代理是否能够处理它?

在传输大量数据时,ELB替代AWS

所以我得到了一个独特的问题。 我们的应用程序旨在使用一次性使用的特殊链接来服务大量文件。 我们一直在玩ELB,但注意到一个有趣的“错误”,如果你开始得到很多的stream量或负载,它看起来像ELB将尝试扩大和重新连接。 这反过来导致我们的系统在下载完成之前使链接无效。 所以很快我把一个nginx的代理服务器来testing这个问题,并在该设置中的连接不会被取消,但我看到性能下降约2/3至1/2。 看到我不能在实例中投入更多的带宽,因为我被locking到AWS给我的替代品有什么? 也许有一个configuration与实例/ nginx我做得不对,或者我需要移动到像RR DNS的东西,并付出代价。

如何将多个AWS LoadBalancer端口映射到单个实例端口?

我已经这样设置 – 我的负载平衡器上的两个端口映射到我的实例上的单个端口(实例检查HTTP标头,并发出HTTPredirect到HTTPS站点,以获取任何非HTTPS请求)。 AWS仪表板显示: LB Proto| LB Port| Inst Proto| Inst Port| SSL Cert ————————————————— HTTP | 80 | HTTP | 8080 | N/A HTTPS | 443 | HTTP | 8080 | my_ssl_cert 在我的例子中,我可以检查传入的stream量如下: sudo ngrep -q -d eth0 -W byline port 8080 这成功了:( https到负载均衡器) curl -k https://111.111.111.111/ 但是这个失败:(http到负载均衡器) curl http://111.111.111.111/ (其中111.111.111.111是负载均衡器的IP) curl停顿和超时,我从来没有看到我的实例上的端口8080活动与ngrep(我发送第一个请求时)。 这是怎么回事? 为什么我的负载均衡器不会将在端口80上接收到的任何stream量转发到我的实例上的端口8080?

amazon web services弹性负载平衡无需停机

我试图弄清楚Amazon Web Services Elastic Load Balancing如何创build不停机。 弹性负载平衡每隔一段时间(通常是几秒钟)就会对服务器path进行压缩。 如果在设定的时间内(通常是一秒或两秒)没有收到响应,它将使服务器脱机,并且不会再向该服务器发送任何stream量,直到它重新联机为止。 我感到困惑的是,虽然该服务器将被脱机,但是AWS Elastic Load Balancing将花费几秒钟的时间对其进行ping处理,并使其实际脱机。 我假设有一种方法可以消除这种需要ping的差距,只能将stream量发送到TRULY活动服务器,并消除Elastic Load Balancing将stream量发送到有问题的服务器的可能性。 我该如何实现这一点,并在我的应用程序中创build0停机时间?

应用程序负载均衡器使用子域进行服务分段

目前,我正在使用现有应用程序中的子域进行服务分割。 For example: www.example.com -> static website delivered from s3 admin.example.com -> ELB1 to ec2 group 1 accounts.example.com -> ELB2 to ec2 group 2 search.example.com -> ELB3 to ec2 group 3 你可以看到,我需要3 ELB来实现这一点。 有了新的应用程序负载平衡器,我希望在1负载平衡器上使用路由规则来做到这一点。 For example : www.example.com -> static website delivered from s3 admin.example.com -> ELB1 to ec2 group 1 accounts.example.com -> ELB1 to […]

AWS自动扩展策略 – 往往会扩大规模

我们为我们的Linux机器configuration了AWS自动扩展策略,但由于某种原因,当我检查扩展活动时,我意识到它可以在非常短的时间内触发多个2-3台计算机,如下所示: 活动历史 以下是我的自动扩展策略: 扩展策略 以下是我的自动缩放组描述: Desired: 1 Min: 1 Max: 5 Default Cooldown: 300 Health Check Type: EC2 Health Check Grace Period: 300 健康检查宽限期300或默认冷却时间? 为什么当在300秒内超过30%的CPU负载时,它会尝试加载多台机器而不是1台

在多个区域使用ELB

假设我有网站域http://myawesomesite.com ,并开始我有美国东部地区ELB设置2个实例运行我的应用程序。 随着网站变得越来越棒,我想开始更快地为我的应用程序提供服务,我使用ELB设置了US-WEST组的实例。 如何将stream量转发到最近的数据中心?