Задать вопрос
alexjet73
@alexjet73

Как проксировать запросы с загрузкой изображений на сервера VK?

В Вконтакте загрузка файлов идёт в три этапа. Получение url на клиенте, отправка файла и урл на сервер, а потом сервер получив данные от ВК отдаёт их клиенту для сохранения. Отправку файлов из клиента делает невозможным cors браузера.
Соответственно хотелось бы сделать проксирование запросов на сервера через nginx, чтобы нагружать сервер по минимуму.
Однако при проксировании нужно удостоверится что url действительно относится к Вк, для этого нужно post переменную с url'ом сверить с списком доменов вк
Домены

<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="vk.com" headers="*"/>
<allow-http-request-headers-from domain="*.vk.com" headers="*"/>
<allow-http-request-headers-from domain="userapi.com" headers="*"/>
<allow-http-request-headers-from domain="*.userapi.com" headers="*"/>
<allow-http-request-headers-from domain="vk.me" headers="*"/>
<allow-http-request-headers-from domain="*.vk.me" headers="*"/>
<allow-http-request-headers-from domain="vkontakte.ru" headers="*"/>
<allow-http-request-headers-from domain="*.vkontakte.ru" headers="*"/>
<allow-http-request-headers-from domain="*.vk-cdn.net" headers="*"/>
<allow-access-from domain="vk.com" to-ports="80"/>
<allow-access-from domain="*.vk.com" to-ports="80"/>
<allow-access-from domain="vk.me" to-ports="80"/>
<allow-access-from domain="*.vk.me" to-ports="80"/>
<allow-access-from domain="userapi.com" to-ports="80"/>
<allow-access-from domain="*.userapi.com" to-ports="80"/>
<allow-access-from domain="vkontakte.ru" to-ports="80"/>
<allow-access-from domain="*.vkontakte.ru" to-ports="80"/>
<allow-access-from domain="*.vk-cdn.net" to-ports="80"/>
<allow-access-from domain="vk.me" to-ports="443"/>
<allow-access-from domain="*.vk.me" to-ports="443"/>
<allow-access-from domain="app.vk.com" to-ports="443"/>
<allow-access-from domain="*.vk-cdn.net" to-ports="443"/>
</cross-domain-policy>


И возможно сделать проверку по секретному ключу.

Вопрос реально ли это реализовать, если да то как? И на сколько решение будет быстрее работать в nginx нежели если бы запрос пропускался через ноду или пхп?
  • Вопрос задан
  • 325 просмотров
Подписаться 3 Средний 11 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    DevOps для эксплуатации и разработки
    6 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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