我的 S3 存储桶前面有一个 CloudFront 资源。它可以通过以下方式访问 —
https://<id>.cloudfront.net
但如果我击中——
<id>.cloudfront.net:443
我收到 400 Bad Request。我想在 HAProxy 配置中指向 CloudFront,但443
由于上述问题,我无法使用该端口。我也无法https
在服务器语句中使用 URL 协议。
backend my_cloudfront_app
http-response set-header Strict-Transport-Security max-age=31536000
server my_server <id>.cloudfront.net:443 ssl verify none
我如何从 HAProxy 中的该服务器块访问 HTTPS cloudfront?
答案1
这和这个问题不是同一个问题吗https://stackoverflow.com/questions/62935547/using-cloudfront-as-a-haproxy-backend-server-with-https
我认为您需要向 cloudfront 后端的请求标头添加一些信息。
此示例适用于 HAProxy 2.0
backend my_cloudfront_app
http-response set-header Strict-Transport-Security max-age=31536000
# Add backend header for cloudfront backend request
http-request set-header Host <id>.cloudfront.net
# maybe you will need to add a S3 prefix to the request path
# http-request set-path <CLOUDFRONT_S3_Prefix>%[path]
server my_server <id>.cloudfront.net:443 sni str(<id>.cloudfront.net) ssl verify none
答案2
haproxy 假定与后端的连接是通过 http 完成的。为了通过 https 连接到后端,您需要ssl
在配置中的 ip:port 部分后面添加server
:
server micros-amkt-frontend <id>.cloudfront.net:443 ssl verify none
注意:我在示例中包含了一些额外的参数(verify none
),因为我找不到进一步的文档。