1*61046927SAndroid Build Coastguard Workerset $proxy_authorization ''; 2*61046927SAndroid Build Coastguard Worker 3*61046927SAndroid Build Coastguard Workerset_by_lua $proxyuri ' 4*61046927SAndroid Build Coastguard Worker unescaped = ngx.unescape_uri(ngx.var.arg_uri); 5*61046927SAndroid Build Coastguard Worker it, err = ngx.re.match(unescaped, "(https?://)(.*@)?([^/]*)(/.*)?"); 6*61046927SAndroid Build Coastguard Worker if not it then 7*61046927SAndroid Build Coastguard Worker -- Hack to cause nginx to return 404 8*61046927SAndroid Build Coastguard Worker return "http://localhost/404" 9*61046927SAndroid Build Coastguard Worker end 10*61046927SAndroid Build Coastguard Worker 11*61046927SAndroid Build Coastguard Worker scheme = it[1]; 12*61046927SAndroid Build Coastguard Worker authstring = it[2]; 13*61046927SAndroid Build Coastguard Worker host = it[3]; 14*61046927SAndroid Build Coastguard Worker query = it[4]; 15*61046927SAndroid Build Coastguard Worker 16*61046927SAndroid Build Coastguard Worker if ngx.var.http_authorization and ngx.var.http_authorization ~= "" then 17*61046927SAndroid Build Coastguard Worker ngx.var.proxy_authorization = ngx.var.http_authorization; 18*61046927SAndroid Build Coastguard Worker elseif authstring then 19*61046927SAndroid Build Coastguard Worker auth = string.sub(authstring, 0, -2); 20*61046927SAndroid Build Coastguard Worker auth64 = ngx.encode_base64(auth); 21*61046927SAndroid Build Coastguard Worker ngx.var.proxy_authorization = "Basic " .. auth64; 22*61046927SAndroid Build Coastguard Worker end 23*61046927SAndroid Build Coastguard Worker 24*61046927SAndroid Build Coastguard Worker -- Default to / if none is set to avoid using the request_uri query 25*61046927SAndroid Build Coastguard Worker if not query then 26*61046927SAndroid Build Coastguard Worker query = "/"; 27*61046927SAndroid Build Coastguard Worker end 28*61046927SAndroid Build Coastguard Worker 29*61046927SAndroid Build Coastguard Worker return scheme .. host .. query; 30*61046927SAndroid Build Coastguard Worker'; 31*61046927SAndroid Build Coastguard Worker 32*61046927SAndroid Build Coastguard Workeradd_header X-GG-Cache-Status $upstream_cache_status; 33*61046927SAndroid Build Coastguard Workerproxy_set_header Authorization $proxy_authorization; 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard Workerproxy_pass $proxyuri; 36*61046927SAndroid Build Coastguard Worker# Redirect back to ourselves on 301 replies 37*61046927SAndroid Build Coastguard Workerproxy_redirect ~^(.*)$ /cache/?uri=$1; 38