对于 Nginx Location,如何获取下面粗体内容?
https://代理主机/存储桶名称/测试/uid
location ~* /regex/ {
proxy_pass https://$1.s3.amazonaws.com/;
}
我需要使用这个正则表达式来提取存储桶名称并填充 Nginx S3 代理中的真实 URL。
谢谢!
答案1
考虑到Bucket 命名规则,下面是一个涵盖这些规则的良好开端:
存储桶名称只能由小写字母、数字、点 (.) 和连字符 (-) 组成。
存储桶名称必须以字母或数字开头和结尾。
location ~ ^/([a-z0-9][a-z0-9\-\.]+[a-z0-9])/ {
proxy_pass https://$1.s3.amazonaws.com/;
}
或者
location ~ ^/(?<bucket>([a-z0-9][a-z0-9\-\.]+[a-z0-9]))/ {
proxy_pass https://$bucket.s3.amazonaws.com/;
}