URL передачи прокси Nginx от получает аргумент

Скажем, у меня есть сервер example.com с nginx.

Я хочу сделать прокси, который проксирует URL передачи, данный как часть запроса URI, или ПОЛУЧИТ параметр (это может содержать строку запроса).

Так, например, Я хочу, чтобы nginx решил http://www.google.pl/image.png?x=y когда GET example.com/proxy/http://www.google.pl/image.png?x=y запрос выполнен.

Я попробовал sth как это:

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

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

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

1
задан 28 February 2015 в 22:10
1 ответ

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

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

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

.
0
ответ дан 4 December 2019 в 08:02

Теги

Похожие вопросы