如何解决使用 HAProxy 前置 Amazon S3
我通过快速管道直接连接到 AWS VPC,并且我想在我的 VPC 中使用一组 HAProxy 实例来反向代理一个或多个 S3 存储桶。这样我的本地用户就可以享受增加的带宽。
我想主要问题是这是否可行,接下来是“是否有比 HAProxy 更好的解决方案?”我不想使用像 squid 这样的显式代理,因为我唯一的用例是 S3。
假设 HAProxy 很好,我为一个存储桶做了一个快速的虚拟设置作为 POC。当我在没有凭据的情况下直接连接到存储桶时(只是为了测试连接性),我看到了我期望的“拒绝访问”XML 响应。但是当我连接到反向代理时,它似乎将我重定向到 https://aws.amazon.com/s3/。我怎么搞砸了?
这是我的配置(用任何存储桶名称替换 MY_BUCKET):
global
daemon
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend servers
backend servers
server server1 MY_BUCKET.s3.amazonaws.com:80 maxconn 100
解决方法
更新:
根据 Pedro 的要求,这是我发现的使这项工作有效的配置。正如你所看到的,它是非常裸露的骨头。 (我使用的是带有两个 CPU 的 EC2 实例。)
global
daemon
nbproc 2
nbthread 1
defaults
mode tcp
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend S3
backend S3
server server1 s3.amazonaws.com:80
,
从 HAProxy 代理到 Amazon S3 绝对是可能的!下面是我们的生产配置文件的副本。我们使用的是 HAProxy 2.2,但这也应该向后兼容旧版本。
resolvers dns
parse-resolv-conf
hold valid 10s
frontend wwoof
mode http
bind *:80
default_backend s3
backend s3
mode http
http-request set-header Host your-bucket.s3-website.eu-west-3.amazonaws.com
http-request del-header Authorization
http-response del-header x-amz-id-2
http-response del-header x-amz-request-id
server s3 your-bucket.s3-website.eu-west-3.amazonaws.com:80 resolvers dns check inter 5000
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。