amazon-web-services - AWS ELB 重定向到 https 公开内部主机名
问题描述
我们在 AWS ELB 后面运行一个 Web 服务器。我们在 ELB 做了几件事:
- SSL 终止。从 ELB 到 Web 服务器的请求是
http
. - 拦截
http
请求并重定向到https
在运行笔测试时,我观察到Location
从 ELB 返回的标头提供了我们 Web 服务器的内部 AWS 主机名,而不是面向公众的域名,如果我发送一个空Host:
标头的话。
例子:
$ curl http://my.site.net/ -v -I --http1.0 --Header 'Host:'
* Trying 100.101.102.103...
* TCP_NODELAY set
* Connected to my.site.net (100.101.102.103) port 80 (#0)
> HEAD / HTTP/1.0
> User-Agent: curl/7.63.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: awselb/2.0
< Date: Fri, 10 May 2019 23:46:54 GMT
< Content-Type: text/html
< Content-Length: 150
< Connection: close
< Location: https://internal-mysite-1234567890.us-west-2.elb.amazonaws.com:443/
ELB 的内部 DNS 名称永远不应公开。如何正确配置它以使其不暴露?
解决方案
@JamesDean 是正确的。经过进一步调查,我发现 ELB 属于 Application Load Balancer 类型。重定向功能已启用并配置为重定向到自定义主机名。
将主机名更新为公共 URL 解决了该问题。
推荐阅读
- xml - XML 文件中的双引号
- git - 从头创建分支并从先前的提交提交
- reactjs - 如何将访问方法 dispatch() 获取到类的组件中
- javascript - 从 vue 获取文件输入并推送到 Python 代码
- ubuntu - 如何使用 gstreamer 保存带有编码 MPEG4-GENERIC 的 rtsp 音频流
- git - 从 NetBeans IDE 中删除远程 git 标记
- java - 如何在警报对话框中显示选定复选框的列表?
- typescript - OfficeJS 方法回调中的此上下文丢失并且 asyncResult.context 未定义
- flutter - 如何在 Flutter 中使用底部导航项切换 TabBar 的可见性
- python - Django - 网址相互附加