@Bredy

Проксирование запроса через nginx на сторонне API?

Это фрагмент кода в nginx. С этого же сервера приходит запрос на /service1 с переданными параметрами в header и я из header вытягиваю значения set $code $arg_code; set $access_token $arg_access_token; set $versionVk $arg_versionVk;
Далее я их хочу использовать в проксируемом запросе и вроде все нормально, данные есть, запрос улетает в вк, но получаю ошибку 404, хотя если без проксирования, напрямую с функции запрос идет с этими же параметрами, то все работает, вк возвращает данные. А в таком варианте почему то не работает.

location /service1 {
	
        set $code $arg_code;
        set $access_token $arg_access_token;
        set $versionVk $arg_versionVk;

       proxy_pass   https://api.vk.com/method/execute?code=$arg_code&access_token=$arg_access_token&v=$arg_versionVk;
        proxy_bind 79.***.68.***;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

      }


еще уточняющая деталь.. Решил иначе попробовать сделать.. в браузер встаил код и все работает
https://api.vk.com/method/execute?code=%20var%20groupInfo%20=%20API.groups.getById({group_ids:%20%22213267337%22,%20fields:%20%22is_closed%22});return%20{%20groupInfo:%20groupInfo%20};&access_token=***************&v=5.154

вставляю этот же код в nginx не работает, ошибка 404
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
@dodo512
У вас какой-то сервер, например, site.ru и в конфиге proxy_set_header Host $host;.
Это подменяет в запросе api.vk.com на site.ru и сервер вк честно отвечает что нет у него такого site.ru.
Уберите proxy_set_header Host $host;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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