我已经设置了一些亚马逊AWS CLI工具(EC2,Auto Scaling,MOnitoring和ELB).工具设置正确,工作完美.我的环境变量都已设置,与此Q相关的是:
export EC2_REGION=eu-west-1
export EC2_URL=https://ec2.$EC2_REGION.amazonaws.com
export AWS_ELB_URL=https://elasticloadbalancing.$EC2_REGION.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
当我ec2-describe-instance-status i-XXXXXXXX
为任何实例运行时,我得到:
Client.InvalidInstanceID.NotFound: The instance ID 'i-XXXXXXXX' does not exist
Run Code Online (Sandbox Code Playgroud)
我知道实例ID存在,我将其从AWS Web控制台复制出来,它位于eu-west-1区域,我的env vars设置为此区域.
对于我的生活,我无法弄清楚为什么它找不到我的实例.我做错了有什么明显的明显吗?
更新:由于某种原因,重新创建x509 cert/pk解决了这个问题.
当我在AWS Route 53中添加ELB作为别名目标时,它会自动将dualstack
前缀添加到我的ELB DNS中.这代表什么?
当我尝试时dig
,两者都返回相同的端点.
注意:这是内部负载均衡器
这是事情:
我不是在寻找问题的解决方案,因为后端不是基于标准的Web服务器,只要有人知道ELB健康检查系统发送了什么类型的消息,因为我们没有找到关于此的文档. ,任何地方.
非常感谢帮助.谢谢.
如果nxinx在负载均衡器后面运行,是否可以强制nginx $ scheme值为"https"?
在我的场景中,负载均衡器负责与客户端的https通信,并将请求作为原始http转发给nginx.我知道我可以做这样的事情来检测https
set $my_scheme "http";
if ($http_x_forwarded_proto = "https") {
set $my_scheme "https";
}
Run Code Online (Sandbox Code Playgroud)
但我只是好奇是否有类似real_ip_header
IP的功能.
在检测https时,是否还需要更新一些标题?
有没有人有使用在AWS模式下运行的AWS ELB后面的HTTP2服务器的经验?
据我所知,AWS ELB现在不支持HTTP2,但是,通过使用TCP模式,它应该透明地将请求传递给后端服务器.
有人有共享经验吗?
谢谢.
我对亚马逊网络服务上会话粘性的使用感到有些困惑.当我使用Amazon Elastic Beanstalk部署我的Java Web应用程序时,我可以选择启用会话粘性,然后指定cookie过期时间.
我的应用程序使用cookie作为会话(JSESSIONID)以及其他小东西.大多数网站只有在登录后才能访问(我使用Spring安全管理它).该网站最多可运行25个小型EC2实例.
我应该启用会话粘性吗?如果我不启用它,是否意味着我可以突然登出,因为负载均衡器将我带到另一台服务器(而不是验证我的服务器)?如果我启用会话粘性,当验证我的服务器关闭时,我是否会被注销?基本上,为什么以及何时应该使用会话粘性?
非常感谢你.
amazon-ec2 amazon-web-services amazon-elb amazon-elastic-beanstalk
我有cert.pfx文件,我需要安装在Amazon Elastic Load Balancer中使用.我该怎么做?
我已经安装了HTTPS来终止我的AWS ELB上的外部HTTPS连接.我现在正尝试使用带有自签名证书的HTTPS来保护我在EL2和我的后端NGINX服务器之间的连接.我已按照文档进行操作,但通过HTTPS访问服务器会导致408 HTTP超时.我似乎无法获得任何调试信息来确定失败的地方.
有什么方法可以获得任何其他诊断信息来测试这个吗?
这是我的ELB配置:
$ aws elb describe-load-balancers --load-balancer-name <MY-ELB-NAME>
{
"LoadBalancerDescriptions": [
{
"Subnets": [
"<REDACTED>",
"<REDACTED>",
"<REDACTED>"
],
"CanonicalHostedZoneNameID": "<REDACTED>",
"VPCId": "<REDACTED>",
"ListenerDescriptions": [
{
"Listener": {
"InstancePort": 80,
"LoadBalancerPort": 80,
"Protocol": "HTTP",
"InstanceProtocol": "HTTP"
},
"PolicyNames": []
},
{
"Listener": {
"InstancePort": 443,
"SSLCertificateId": "<REDACTED>",
"LoadBalancerPort": 443,
"Protocol": "HTTPS",
"InstanceProtocol": "HTTPS"
},
"PolicyNames": [
"ELBSecurityPolicy-2015-05"
]
}
],
"HealthCheck": {
"HealthyThreshold": 2,
"Interval": 30,
"Target": …
Run Code Online (Sandbox Code Playgroud) 我使用Amazon Certificate Manager为我的站点创建了SSL证书.证书适用于*.example.com.然后我将此证书附加到我的ELB并将实例协议保留为http.所以SSL链只在客户端和ELB之间.我在Route53有两条A记录.一个用于example.com,一个用于www.example.com.这两个都是ELB的别名.当我做https://www.example.com时,它完美无缺.但是,当我执行https://example.com时,我在FireFox中收到以下错误:
"example.com使用无效的安全证书.证书仅对*.example.com有效.错误代码:SSL_ERROR_BAD_CERT_DOMAIN"
证书*.example.com不应该用于地址example.com吗?我错过了什么吗?
编辑2016年5月31日
感谢Steffen Ullrich让我走上正轨.问题是在控制台(Web浏览器)中使用AWS Certificate Manager(ACM)时,没有选项可以添加备用名称.对于那些遇到相同问题的人,您需要使用CLI(命令行界面).快速搜索"安装AWS CLI"将为您提供完成安装所需的所有信息.安装CLI后,即可运行ACM命令.这是文档的链接:
http://docs.aws.amazon.com/cli/latest/reference/acm/request-certificate.html
我使用的命令是:
aws acm request-certificate --domain-name www.example.com --subject-alternative-names example.com
一旦请求获得批准,我就能在ACM Web界面中看到SSL证书.我安装了它,现在一切都像魅力一样!
我正在尝试为 Fargate ECS 配置负载平衡。我的理解是至少有两个目标群体。一个目标组随应用程序负载均衡器一起创建,一个目标组随 ECS 服务一起创建。
我的容器在 TCP 端口 5000 上运行其服务。我希望负载均衡器仅通过常规 443 端口公开 HTTPS,并将 HTTP 重定向到 HTTPS,或者如果这很困难,则直接删除 HTTP。
我发现监听器允许指定一大堆东西。然而,我对该服务创建的目标群体感到困惑。它 -IP
类型组,侦听端口 80。无论我在服务创建/配置期间选择 HTTP 还是 HTTPS。
我的容器从来没有得到任何流量。我启用了负载平衡器日志记录,平衡器似乎不明白我想要它做什么。在"forward" "-" "-" "-" "-" "-" "-"
每个请求末尾的日志中。
我跑去aws elbv2 describe-target-groups
找定义。
{
"TargetGroups": [
{
"TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:505963211XXX:targetgroup/ecs-fargate-api-service-tg/1ebb89754b34d072",
"TargetGroupName": "ecs-fargate-api-service-tg",
"Protocol": "HTTPS",
"Port": 80,
"VpcId": "vpc-e623dd9b",
"HealthCheckProtocol": "HTTPS",
"HealthCheckPort": "traffic-port",
"HealthCheckEnabled": true,
"HealthCheckIntervalSeconds": 30,
"HealthCheckTimeoutSeconds": 5,
"HealthyThresholdCount": 5,
"UnhealthyThresholdCount": 2,
"HealthCheckPath": "/cookie-policy",
"Matcher": {
"HttpCode": "200"
},
"LoadBalancerArns": [
"arn:aws:elasticloadbalancing:us-east-1:505963211XXX:loadbalancer/app/node-api-lb/f5e512a2678688f5"
],
"TargetType": …
Run Code Online (Sandbox Code Playgroud) amazon-elb ×10
amazon-ec2 ×4
nginx ×2
amazon-ecs ×1
aws-cli ×1
http2 ×1
https ×1
openssl ×1
pfx ×1
ssl ×1