Nginx 代理程式透過 get 參數傳遞 url

Nginx 代理程式透過 get 參數傳遞 url

假設我有一個example.com帶有 nginx 的伺服器。

我想建立一個代理,它將代理傳遞作為請求 URI 或 GET 參數的一部分給出的 URL(它可能包含查詢字串)。

例如,我希望 nginx在發出請求http://www.google.pl/image.png?x=y時進行解析。GET example.com/proxy/http://www.google.pl/image.png?x=y

我已經嘗試過這樣的事情:

location /proxy {
    rewrite /proxy(.*) /$1 break;

  resolver 8.8.8.8;
  proxy_pass http://$arg_host/$arg_uri?$query_string;
}

也許我想要重定向?假設我想提供位於不同伺服器上的映像,因為它們是我的(在我的網域上)。

答案1

嘗試這個:

location ~ /proxy/(http://.*) {
    resolver 8.8.8.8;
    proxy_pass http://$1$is_args$args;
}

不需要明確重寫。如果請求行有參數,則$is_args設為,否則設為空字串,並且將包含請求中的參數(不包括),如果沒有查詢參數,則設為空字串。將匹配包含在位置正規表示式中的 URI 部分。?$args?$1( ... )

相關內容