Назад | Перейти на главную страницу

Прокси-сервер Nginx передает URL-адрес из аргумента получения

Допустим, у меня есть сервер 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;
}

Может я хочу перенаправить? Допустим, я хочу обслуживать изображения, которые находятся на другом сервере, поскольку они мои (в моем домене).

Попробуй это:

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

Никакого явного переписывания не требуется. $is_args будет установлен на ? если в строке запроса есть аргументы или пустая строка в противном случае, и $args будет содержать параметры в запросе (исключая ?) или пустую строку, если не было параметров запроса. $1 будет соответствовать части URI, заключенной в ( ... ) в регулярном выражении местоположения.