我想设置一个反向代理来提供存储在S3中的图像
如果referrer
不是example.com
,我不想允许访问图片
但是我想允许多个抓取工具,例如google bot,bing bot等(基于user_agent
)来访问图像。
我还想让我的Android应用程序访问图像(基于自定义标题说X-Application: ExampleApp
)
如何配置nginx?
答案 0 :(得分:1)
使用3 IF,由于IF限制而无法正常工作。 你可以做的是2件事,设置MAP来处理3个测试(设置true或false值)然后在服务器块内部使用Lua将3个测试值合并为一个并使用单个IF(或纯Lua)允许/拒绝访问的位置块。
map $referrer $usestring1 {
default 0;
~^google$ 1;
}
map $user_agent $usestring2 {
default 0;
~^google$ 1;
}
etc....
location / {
content_by_lua '
local s = ngx.var.usestring1;
local t = ngx.var.usestring2;
if s+t == 2 then return ngx.exit(503); end;
';
etc...........