set $proxy_authorization '';

set_by_lua $proxyuri '
        unescaped =  ngx.unescape_uri(ngx.var.arg_uri);
        it, err = ngx.re.match(unescaped, "(https?://)(.*@)?([^/]*)(/.*)?");
        if not it then
                -- Hack to cause nginx to return 404
                return "http://localhost/404"
        end

        scheme = it[1];
        authstring = it[2];
        host = it[3];
        query = it[4];

        if ngx.var.http_authorization and ngx.var.http_authorization ~= "" then
                ngx.var.proxy_authorization = ngx.var.http_authorization;
        elseif authstring then
                auth = string.sub(authstring, 0, -2);
                auth64 = ngx.encode_base64(auth);
                ngx.var.proxy_authorization = "Basic " .. auth64;
        end

        -- Default to / if none is set to avoid using the request_uri query
        if not query then
                query = "/";
        end

        return scheme .. host .. query;
';

add_header X-GG-Cache-Status $upstream_cache_status;
proxy_set_header Authorization $proxy_authorization;

proxy_pass $proxyuri;
# Redirect back to ourselves on 301 replies
proxy_redirect ~^(.*)$ /cache/?uri=$1;
