Articles of amazon elb

使用域/主机链的弹性负载平衡

我已经在EC2上设置了一个弹性负载均衡器(例如)具有以下公共DNS(A Record): LB-165746761.eu-west-1.elb.amazonaws.com 然后,我通过configuration一个指向负载均衡器公有DNS的CNAMElogging来注册一个我想作为负载均衡器的公有域的域: CNAME loadbalancer.domain.com – > LB-165746761.eu-west-1.elb.amazonaws.com 然后我有一个公共网站域,我已经build立一个CNAME指向loadbalancer的主机名称: CNAME www.mysite.com – > loadbalancer.domain.com 这里的例子是将公共站点直接设置为负载平衡器。 这个链的原因是,我们想给我们的客户一个友好的DNS,而不是ELB生成一个域来指向(其中有数百个)。 我们认为,如果ELB的公共DNS(loadbalancer.domain.com的CNAMElogging)发生更改,也会给我们一个更新的位置。 我的问题是,是否首先可以像这样将CNAMElogging链接在一起,是否build议以及在EC2 ELB环境中是否存在任何不利因素?

Elastic Beanstalk应用程序部署(用户 – > ELB – > Elastic Beanstalk mod_wsgi)

我有一个Python Elastic Beanstalk负载平衡应用程序。 以下是用户请求进入Elastic Beanstalk应用程序的path: user -> Elastic Beanstalk ELB -> Elastic Beanstalk mod_wsgi 问题: 在eb deploy新的应用程序版本之后,来自user的前2-4个请求将从ELB生成504个错误。 经过这些〜2-4个生成504的请求,一切都很好! 到处都是200s。 当504s发生时,根据/var/httpd/access_log ,零请求将传递到Elastic Beanstalk mod_wsgi应用程序。 在ELB决定重新开始工作之后,我只看到了200年代。 我已经尝试过的事情没有奏效: 我将Elastic Beanstalk ELB空闲超时增加到了300秒 我将Elastic Beanstalk mod_wsgi apache KeepAliveTimeout增加到了300秒,如下所示: http : //docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html 有人可能会说,“只是和504一起生活!” 但是,实际的问题是,在我的生产环境中, user和Elastic Beanstalk ELB之间有CloudFlare 。 CloudFlare设置为积极caching.css和.js文件,因为我将md5散列添加到静态文件URL。 当这些重要文件的请求失败时,CloudFlare似乎将这些失败caching为404。 对这些文件的进一步请求404,从而打破了每个部署的站点的视觉样式。 再次使用相同的应用程序版本部署Elastic Beanstalk应用程序将修复CloudFlare 404问题。 这不是一个好的解决scheme。 我想继续使用CloudFlare,因为它使得一个优秀的透明CDN,所以摆脱它也不是一个解决scheme。 很难相信我对这个问题一无所知,但是Google,stackoverflow / serverfault和AWS论坛还没有find任何解决scheme,甚至是类似的问题报告。 我希望我对这种行为的描述在这里与某人敲响。 提前致谢。

ELB和服务器都使用SSL

我把我的ELBconfiguration成能够通过将我的证书放入ELB本身来服务ssl页面。 说ELB服务www.example.com的请求。 同时,我需要在ELB 之外使用ssl,并直接从服务器提供一些内容,而不经过ELB。 在这种情况下,请求将发送到web.example.com。 我怎么能做到这一点,并确保如果SSL服务的ELB从服务器卸载? 考虑到我的networking服务器是nginx。 谢谢,C

在SSL终止负载均衡器后面,如何设置nginxredirect到某个主机的https

您好,我有一个在ELB(负载平衡器)后面的EC2中的web服务器(运行nginx),终止SSL连接。 如果有一个请求www.domain.com它将http到ELB并传递到Nginx服务器上的http 如果有一个请求secure.domain.com它应该去https到ELB并传递到http到nginx服务器。 如果请求来自http://secure.domain.com我希望nginx做一个301redirect到https://secure.domain.com 。 我可以通过使用由ELB注入的http_X_Forwarded_Proto头来完成这个任务。 所以像 server { listen 80; server_name secure.domain.com ; if ($http_X_Forwarded_Proto = http) { return 301 https://secure.domain.com$request_uri; } …. } 问题是,“if()”似乎在服务器块上运行,因此,对于http://www.domain.com/foo (在另一个服务器块中)的请求被if()和301到https://secure.domain.com/foo 。 我怎样才能configurationnginx只是redirectsecure.domains.com到https而不影响我所有的其他虚拟主机? 谢谢

设置Elastic Load Balancer后,我的https不再工作。 Nginx错误

我有一个正常的实例,当不在负载均衡器后面时可以正常工作。 我build立了一个ELB,80转发到80和443转发到443和粘性会话。 之后,我收到此错误时去任何https页面。 The plain HTTP request was sent to HTTPS port 我处理在我的nginxconfiguration中的某些页面上强制https的过程。 我需要做些什么才能做到这一点? 我在下面放置一个我的nginxconfiguration的准系统版本。 http { include mime.types; default_type application/octet-stream; # Directories client_body_temp_path tmp/client_body/ 2 2; fastcgi_temp_path tmp/fastcgi/; proxy_temp_path tmp/proxy/; uwsgi_temp_path tmp/uwsgi/; server { listen 443; ssl on; ssl_certificate ssl.crt; ssl_certificate_key ssl.key; server_name www.shirtsby.me; if ($host ~* ^www\.(.*)) { set $host_without_www $1; rewrite ^/(.*) […]

如何允许通过DNS名称访问AWS Elastic Load Balancer?

我有一个ELB。 它有我们所期望的地址myelbname.eu-west-1.elb.amazonaws.com 。 ELB背后还有一个EC2实例。 负载均衡器说实例是健康的(状态为“In Service”)。 我可以通过我的networking上的IP访问EC2实例(使用VPN到VPC),但是如果我在浏览器中访问负载平衡器的Alogging,则无法find它。 另外,如果我运行nslookup它会显示负载均衡器的IP地址。 我也尝试添加一个CNAMElogging,并指向ELB的DNS名称,但没有奏效。

阻止AWS ELB后面的stream量

我的Web服务器在ELB后面,我想阻止来自某个DDOS攻击的特定用户代理的stream量。 Apache总是看到ELB的IP地址作为最终用户,所以我尝试了下面的尝试: 阻止在ELB级别的IP地址是不可能的,因为它有20个IP地址的限制和IP地址在每次攻击时改变。 阻止访问使用重写条件,这个工程,但如果很多命中来,然后服务器负载超过100,所有的Apache线程忙于服务吨的403,所以网站出现合法的请求。 RewriteCond %{HTTP_USER_AGENT} ^SomeThing RewriteRule ^(.*)$ – [F] 用mod_sec块做同样的事情的服务403创造相同的效果上面#2。 使用iptables阻止数据包string模块:阻止具有特定用户代理的数据包。 在这种情况下,iptables发送DROP / REJECT给攻击者,apache没有得到连接现在已经死了的信号,并等待超时导致所有的apache线程超时使用,所以这个方法在这里没有用处。 iptables -I INPUT -i eth0 -p tcp –dport 80 -m string –algo bm –string 'user-agent: SomeThing' -j REJECT 我可以使用iptables的方式,它会从第一个包含user-agent: SomeThing数据包获取IP地址,并阻止所有下一个具有X-Forwarded-For: someIP数据包,时间为4-5小时。 我不想永远阻止IP地址阻塞,因为这些IP地址可以分配给一些合法的用户,并将被阻止。 或者还有其他更好的办法来处理这个攻击吗?

nginx如何在与上游DNS名称关联的IP之间分配stream量?

有了这个configuration: upstream some_upstream { server some-elb.us-east-1.elb.amazonaws.com:80; } 如果某些-elb.us-east-1.elb.amazonaws.com映射到2个IP地址,nginx将如何在它们之间分配请求? 循环赛? (对于版本1.1.19,如果行为在某些时候改变了)。 另外,我在这里读到nginx在启动时cachingDNS结果。 如果你使用一个variables,它会刷新它们,但是只有你configuration了一个DNSparsing器。 因此,如果我没有configurationDNSparsing器,那么如果some-elb.us-east-1.elb.amazonaws.com中的某个IP发生更改,会发生什么情况? Nginx会继续发送stream量到它在启动时find的同一组IP吗?

Amazon ELB HTTPS后端身份validation导致无效的证书错误

我有一个通过Starfield安全证书颁发机构签发的通配符SSL证书,有效期至2014年。我已经使用ELB证书,且没有后端身份validation(证书未安装在ELB上)一年多。 我最近需要将客户端IP传递给服务器。 为了让客户端IP通过,我必须创build一个新的ELB,并在ELB上安装证书,并使用ELBSampleELBDefaultCipherPolicy设置后端身份validation。 SSL证书也安装在服务器/实例上。 我有超过100个客户使用新的configuration,没有任何问题。 但是,我有2个客户端抛出无效的证书错误: java: "unable to find valid certification path to requested target" .net: "Could not establish trust relationship for the SSL/TLS secure channel… The remote certificate is invalid according to the validation procedure" 我担心这个错误是我的configuration更大的问题的症状。 如果您对如何解决此问题有任何想法或build议,请告诉我们。

我可以在普通EC2上使用新的免费SSL / TLS AWS证书,而不使用ELB或Beanstalk吗?

AWS刚刚宣布了免费的SSL / TLS证书: https : //aws.amazon.com/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on-aws/ 主要是: 通过AWS Certificate Manager提供的SSL / TLS证书是免费的! 和 您可以免费提供,部署和续订证书。 但是,博客文章和文章似乎并没有阐明创build的证书是否可以在没有ELB或Beanstalk的普通EC2实例上使用。 它只是这样说的: 由于ELB支持SSL卸载,因此将证书部署到负载平衡器(而不是其后面的EC2实例)将减less实例需要处理的encryption和解密工作量。 和 我们计划添加对其他AWS服务和其他types域validation的支持。 这篇链接的文章: https : //medium.com/@arcdigital/enabling-ssl-via-aws-certificate-manager-on-elastic-beanstalk-b953571ef4f8#.2w5o4vq9p 说 这里有一个警告:你必须使用弹性负载平衡器(前面没有ELB的单实例环境将不起作用)使用弹性beanstalk。 我的问题是:我可以访问和使用这个服务生成的SSL证书吗?它们是否有效?