使用 Amazon S3 配置 Nginx 并使用请求的位置 url 从 S3 获取 html

Configure Nginx with Amazon S3 and get html from S3 by using location of requested url

在 Nginx 中是否有配置 Nginx 以从 S3 存储桶获取 html 内容的好方法?

我想从 s3 存储桶中获取静态 html 内容。我尝试 proxy_pass 来实现这一点。

请求的url结构是/file/path1/path2/。 默认的 conf 文件是:

location /file/path1/path2/ {
    proxy_pass http://s3.amazonaws.com/example-bucket/file/path1/path2/index.html;
}

此外,如何从请求的 url 中获取路径 1 和路径 2。 我查看了文档,但没有找到直接的方法。

希望得到详细的解释。

这是我为可能遇到此问题的人(可能是新手)所做的。

location ~* ^/some_bucket/(.*)/(.*)/.* {
    proxy_pass http://s3.amazonaws.com/some_bucket///_.html;
}

~* 表示不区分大小写的正则表达式匹配 ^ 表示 () 之前的任何内容,用于捕获参数。

例如,用户输入 www.example.com/some_bucket/folder1/folder2/text

然后,处理为,

~* 确保不区分大小写的搜索(对于区分大小写的跳过 *(意味着只输入 ~))

^ 匹配 www.example.com.

然后匹配

/some_bucket/,

.* 表示任意数量的任意字符(对于任意数字,替换为 [0-9]*)

() 确保捕获匹配的值

所以,$1 捕获文件夹 1

$2 捕获文件夹2

然后

.* 不带括号匹配任何字符但不捕获匹配值

现在可以使用捕获的值在亚马逊存储桶中使用

查找文件

proxy_pass http://s3.amazonaws.com/some_bucket/$1/$2/$1_$2.html

https://www.digitalocean.com/community/tutorials/understanding-nginx-server-and- 位置块选择算法可能会有帮助