标签: amazon-elb

亚马逊ELB无法提供响应

我有一个在Amazon Web Services上运行的网站,该网站使用Elastic Beanstalk部署,并在单个EC2微实例上运行.这是一个临时环境,我是唯一可以访问它的人.使用Apache JMeter的,我模拟六个用户浏览的网站上,平均约在总每3秒(图像,CSS,JS等静态资源被CloudFront的投放,也不会做出对EC2实例的流量)的请求.

问题是,经过一段时间(通常在设置环境后30-60分钟),网站停止响应.我确信Tomcat仍然正常运行,因为我可以在日志(catalina.out)中看到cronjobs仍在执行中.似乎只有ELB无法提供响应.

分析日志时,Tomcat上根本没有错误(/opt/tomcat7/logs/tail_catalina.log或/opt/tomcat7/logs/catalina.out中没有错误).一旦网站无法访问,以下错误就会立即出现在/ etc/httpd/logs/elasticbeanstalk-error_log中:

[Thu Jun 14 20:26:42 2012] [error] (111)Connection refused: proxy: HTTP: attempt to connect to 127.0.0.1:8999 (localhost) failed
[Thu Jun 14 20:26:42 2012] [error] ap_proxy_connect_backend disabling worker for (localhost)
[Thu Jun 14 20:26:50 2012] [error] (111)Connection refused: proxy: HTTP: attempt to connect to 127.0.0.1:8999 (localhost) failed
[Thu Jun 14 20:26:50 2012] [error] ap_proxy_connect_backend disabling worker for (localhost)
[Thu Jun 14 20:27:20 2012] [error] (111)Connection refused: proxy: HTTP: attempt to connect to 127.0.0.1:8999 (localhost) …
Run Code Online (Sandbox Code Playgroud)

tomcat load-balancing amazon-web-services amazon-elb

2
推荐指数
1
解决办法
5378
查看次数

ELB不会将流量路由到健康实例

这似乎与子网/可用性区域有关,但我是新手使用VPC而且它是在逃避我.

VPC:10.80.0.0/16
子网:10.80.1.0/24(us-east-1b)
子网:10.80.2.0/24(us-east-1a)

所有实例都是Windows Server 2012.

我在我的VPC(10.80.0.0/16)内创建了面向ELB的互联网.从AZ us-east-1a添加了一个实例,它位于子网10.80.2.0/24上.该实例正在运行IIS 7.5,其中应用程序在端口80上运行,而/health.aspx设置为用作ELB运行状况检查.

VPC上的内部流量正常流动(不受限制).我可以从us-east-1b(10.80.1.0/24)中的另一个实例请求此实例的health.aspx.我也可以将文件从一个实例复制到另一个实例.

出站流量不受限制.我可以RDP到实例(当连接到我们的VPN时)并打开浏览器并请求网页并获取它.

ELB说实例是健康的,我可以在IIS日志中看到对health.aspx的请求.ELB和实例都配置了允许80和443的安全组.

但是,如果我尝试通过开放的互联网请求{elb-url} /health.aspx,请求就会超时.同样,使用与实例关联的弹性IP,对{elastic-ip} /health.aspx的请求超时.

amazon-elb amazon-vpc

2
推荐指数
1
解决办法
3052
查看次数

如何使用PHP和MySQL为Amazon EC2网站设置基本Auto Scaling

我有一个完全存储在Amazon EC2微实例上的基本PHP/MySQL网站.流量即将增加一段时间,我想实现基本的自动缩放主要是为了给我更多的CPU功率,因为​​这似乎是瓶颈.所以我知道的主要限制是:

  • 保留MySQL数据库数据
  • 保留网站文件(位于/ var/www/*)

任何人都可以指出最好的方法吗?

PS因为我的服务器设置并不复杂,所以如果必须的话,我愿意重建/重新上传所有这些...我只需要正确地使用Auto Scaling.

amazon-s3 amazon-ec2 amazon-ebs amazon-web-services amazon-elb

2
推荐指数
1
解决办法
2779
查看次数

具有单个CloudFront分配的多个网站不会被路由

我有几个网站 - 大约20个.所有这些都是php应用程序目前托管在一台机器上的apache.现在使用虚拟主机配置,我可以使用一个ELB托管所有这些(除非它们需要通过HTTPS).我可以轻松地将传入的请求路由到适当的目录服务器.

但是当我创建一个带有Origin的CloudFront Distribution作为ELB时,我的所有网站都开始获得默认页面.如何将apache配置为CDN和ELB识别.

我以为我可以使用一些标题,但看起来不会服务任何东西.以下是我在CloufFront后面获取请求的标题.CDN-> ELB-> my_application之

"host": "MY_PUBLIC_FACING_ELB_DNS_NAME",
"cache-control": "cf-no-range-cache",
"user-agent": "Amazon CloudFront",
"via": "1.1 d6e48c0d02a2d98c0ccacee7577ee8c2.cloudfront.net (CloudFront)",
"x-amz-cf-id": "rB-gbTCqWq2IeZ-B25-d36rp9j3FmFuicsdPOltDBuYk0HPgLyLj_g==",
"x-forwarded-for": "54.169.155.12, 54.240.148.53",
"x-forwarded-port": "80",
"x-forwarded-proto": "http",
"connection": "keep-alive"
Run Code Online (Sandbox Code Playgroud)

如果没有配置ELB,我会得到以下内容.

"host": "www.example.com",
"accept": "*/*",
"user-agent": "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36   (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36",
"accept-encoding": "gzip, deflate, sdch",
"accept-language": "en-US,en;q=0.8",
"cookie": "_sm_au=aaaaaaaaaaaaaaaaaaaa",
"via": "MY_SQUID_SERVER_NAME_VERSION",
"z-forwarded-for": "AAAAAAAAAAAA",
"cache-control": "max-age=259200",
"xroxy-connection": "keep-alive",
"connection": "Keep-Alive",
"x-forwarded-for": "MY_PROXY_SERVER'S_IP"
Run Code Online (Sandbox Code Playgroud)

托管在CloudFront后面时,我不会获得亚马逊ELB传递的任何主机信息.我该如何解决这个问题?

谢谢

php apache amazon-cloudfront amazon-elb

2
推荐指数
1
解决办法
1297
查看次数

在Amazon EC2 ELB上安装SSL证书

我是Amazon Web Services的新手,并且一直在尝试在EC2实例上安装SSL证书.我尝试使用AWS文档,但发现它令人费解.然后,我按照http://www.robertbrewitz.com/2014/09/aws-and-setting-up-a-custom-ssl-certificate/上的指南进行操作.

我用Go Daddy购买了我的SSL证书,并使用openssl生成了2个文件:

server.key
server.csr
Run Code Online (Sandbox Code Playgroud)

指南说我应该期待3个证书:

DigiCertCA.crt
TrustedRoot.crt
star_yourdomain_com.crt
Run Code Online (Sandbox Code Playgroud)

相反,我很容易收到2个名为的文件:

f6f65901b1708ae5.crt
gd_bundle-g2-g1.crt
Run Code Online (Sandbox Code Playgroud)

我假设f6f65901b1708ae5.crt是我的域名证书(但我不确定).无论如何,指南说我需要一个Elastic Load Balancer来安装SSL证书,所以我创建了一个.

我生成了私钥:

openssl rsa -in server.key -text
Run Code Online (Sandbox Code Playgroud)

和公钥认证:

openssl x509 -inform PEM -in f6f65901b1708ae5.crt
Run Code Online (Sandbox Code Playgroud)

我还被要求进入证书链.我不确定这是什么以及如何得到它,所以我猜到了命令:

openssl x509 -inform PEM -in gd_bundle-g2-g1.crt
Run Code Online (Sandbox Code Playgroud)

并输入以"----- BEGIN CERTIFICATE -----"开头的结果证书密钥

该指南继续说,然后我需要设置Cloudfront.我安装了aws命令行工具,为了生成我运行的PEM:

openssl rsa -in server.key -text > aws_private.pem
openssl x509 -inform PEM -in f6f65901b1708ae5.crt > aws_public.pem
openssl x509 -inform PEM -in gd_bundle-g2-g1.crt > aws_public.pem 
Run Code Online (Sandbox Code Playgroud)

我上传了SSL证书:

aws iam upload-server-certificate --server-certificate-name mydomain_com \
--certificate-body file://aws_public.pem --private-key file://aws_private.pem …
Run Code Online (Sandbox Code Playgroud)

ssl https amazon-ec2 ssl-certificate amazon-elb

2
推荐指数
1
解决办法
1804
查看次数

AWS ELB-多VPC负载平衡

我正在一个项目中,其中一项任务是为远程VPC中的实例提供AWS ELB服务。AWS ELB位于VPC A中,实例位于VPC B中。我的最初回答是:否,因为ELB是负载均衡器,而不是路由器。文档和与AWS ELB的配合使用表明,不支持或无法配置远程VPC中子网/实例的负载平衡。

我正在检查是否有人尝试过此方案以取得任何成功。

非常感谢您的任何回应或反馈。

amazon-ec2 amazon-web-services amazon-elb amazon-vpc aws-cli

2
推荐指数
2
解决办法
4499
查看次数

在AWS ELB中自动将HTTP重定向到HTTPS

我想将所有HTTP请求重定向到AWS中的https.我使用ELB作为ssl证书并使用ubuntu(64位)操作系统.

ubuntu amazon-s3 amazon-web-services amazon-elb amazon-route53

2
推荐指数
2
解决办法
3134
查看次数

防止X-Forwarded-使用ELB和Node进行欺骗

我正在分析一个公共路由的堆栈,该路由依赖于Elastic Load Balancer,它打开PM2暴露的端口,该端口使用koa模块启动节点应用程序.目前,IP已被记录,并且仅取决于X-Forwarded-For标头.如果使用手动创建此标头curl,则应用程序将其写为IP地址.

是否有一种简单的方法可以防止欺骗此标头或设置AWS的ELB,因此它会忽略手动插入的标头,或者是否有比欺骗性标头更好的方式来获取访问者的真实IP地址?

spoofing amazon-web-services node.js amazon-elb pm2

2
推荐指数
2
解决办法
981
查看次数

Terraform ELB access_log S3访问权限问题

当我尝试为我的elb access_log创建s3存储桶时,terraform出现问题,我在下面得到以下错误:

Error applying plan:

1 error(s) occurred:

* module.elb-author-dev.aws_elb.elb: 1 error(s) occurred:

* aws_elb.elb: Failure configuring ELB attributes: InvalidConfigurationRequest: Access Denied for bucket: my-elb-access-log. Please check S3bucket permission
status code: 409, request id: 13c63697-c016-11e7-8978-67fad50955bd
Run Code Online (Sandbox Code Playgroud)

但是,如果我转到AWS控制台并手动将s3 Public访问权限授予所有人。重新运行terraform应用效果很好,请帮助我解决此问题。

我的main.tf文件

module "s3-access-logs" {
  source = "../../../../modules/aws/s3"

  s3_bucket_name       = "my-elb-access-data"
  s3_bucket_acl        = "private"
  s3_bucket_versioning = true
  s3_bucket_region = "us-east-2"
}
 # elastic load balancers (elb)
module "elb-author-dev" {
  source           = "../../../../modules/aws/elb"
  elb_sgs          = "${module.secgrp-elb-nonprod-
author.security_group_id}"
  subnets          = ["subnet-a7ec0cea"]
  application_tier    = "auth"
  access_logs_enabled = …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services amazon-elb terraform

2
推荐指数
1
解决办法
1530
查看次数

使用Cloudformation和竞价型实例执行RollingUpdate

如果我的ec2启动配置发生任何更改,我将使用cloudformation UpdatePolicy属性执行滚动更新。使用按需实例时,这可以正常工作。但是当我使用竞价型实例时,出现以下错误:

Autoscaling rolling updates cannot be performed because the current launch configuration is using spot instances and MinInstancesInService is greater than zero.
Run Code Online (Sandbox Code Playgroud)

MinInstancesInService属性设置为零可以使其正常工作,但是我会在3-5分钟左右的时间内停机。

有没有一种方法可以使用Cloudformation在不停机的情况下实现这一目标?否则,有人会指出一种更好的方法来自动执行此滚动更新过程,因为我有多个环境,而手动执行此操作很容易出错。谢谢

amazon-web-services amazon-elb aws-cloudformation autoscaling

2
推荐指数
1
解决办法
675
查看次数