对于resource跨域请求的解决方案(facebook/youtube等),可使用nginx代理转发请求
Get: http://ip/res/[res_url]
location /res/ {
# auth_request /auth;
resolver 114.114.114.114 8.8.8.8 valid=3600s;
if ($request_uri ~* "/res/(.*)") {
set $proxy_url $1;
}
# get image url
set $is_matched 0;
if ($proxy_url ~* "^(http)(s?):\/\/?([a-zA-Z0-9\-\.]+:?\d*)([^\?]*)") {
set $is_matched 1;
set $proxy_protocol http$2;
set $proxy_host $3;
set $proxy_uri $4;
set $proxy_url $proxy_protocol://$proxy_host$proxy_uri;
proxy_pass $proxy_url$is_args$args;
}
}
对于http://ip/res?url=[res_url]请求,nginx参数$arg_url已经被urlencoder,并且nginx内置模块没办法urldecoder,转发请求会有问题