URL-адрес прокси-сервера Nginx из аргумента get

URL-адрес прокси-сервера Nginx из аргумента get

Допустим, у меня есть сервер example.comс nginx.

Я хочу создать прокси-сервер, который будет передавать URL-адрес, указанный как часть URI запроса или параметра GET (он может содержать строку запроса).

Например, я хочу, чтобы 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будет установлено в ?, если строка запроса имеет аргументы, или пустую строку в противном случае, и $argsбудет содержать параметры в запросе (за исключением ?) или пустую строку, если параметров запроса не было. $1будет соответствовать части URI, заключенной ( ... )в регулярном выражении местоположения.

Связанный контент