gpt4 book ai didi

amazon-s3 - Haproxy - 将请求转发到 S3 托管站点

转载 作者:行者123 更新时间:2023-12-05 09:19:38 26 4
gpt4 key购买 nike

我对 haproxy 的了解非常少。正在测试配置

S3 托管网站(route 53 别名)- content.mydomain.com
URL 登陆 haproxy - www.mydomain.com/getfiles/

是否可以将 www.mydomain.com/getfiles/重定向到 content.mydomain.com(s3 托管网站)。

我能够使用下面提到的配置将它重定向到在同一服务器上运行的另一个应用程序

  acl display-s3-content path_beg /getfiles/
use_backend my-content if display-s3-content

backend my-content
reqrep ^([^\ ]*)\ (.*) \1\ /path/\2
server test www.mycomain.com:1936

但是当我尝试将它重定向到 s3 托管站点时,它不起作用。下面是不工作配置的后端

  reqrep ^([^\ ]*)\ (.*) \1\ /path/\2
server test1 content.mydomain.com

谢谢!

最佳答案

正如您在评论中指出的那样,这是可行的:

reqirep ^Host: Host:\ content.mydomain.com

想法是设置Host header 到 S3 期望的值。

一个更简洁的方法是这样的:

http-request set-header Host content.mydomain.com

我说“更好”是因为它使用更新/更好/更安全的机制来处理 header ,但它从根本上实现了相同的目的:将请求 header 更改为目标服务器 (S3) 所期望的。使用 http-request方法更安全/更清洁,因为它在处理请求方面“更智能”——使用 req[i]rep 完全破坏协议(protocol)要容易得多。比http-request .

最初,您询问的是 /getfiles/test.jpg映射到 /test.jpg在桶里。这种重写在 HAProxy 1.6 及更高版本中非常简单和干净:

http-request set-path %[path,regsub(^/getfiles,)]

...但是在 1.5 中你必须使用 reqirepregsub (正则表达式替换)转换器不可用:

reqirep ^([^\ :]+)\ +/getfiles(.*) \1\ \2

这与 GET 匹配( HEADPOST 等)请求中的行并删除额外的 /getfiles从路径。包括 :在排除模式中阻止它匹配任何其他 header 。在将请求发送到 S3 之前,可以使用类似的模式添加前缀(例如发布版本等)。

关于amazon-s3 - Haproxy - 将请求转发到 S3 托管站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39964607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com