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