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

Как принимать запросы от яндекс форм у себя на сервере?

У меня есть тестовое приложение Quart (асинхронный Flask) со следующим кодом:
Quart app

from quart import Quart, request

app = Quart(__name__)


@app.route('/', methods=['POST'])
async def index():
    print(await request.get_json())
    return '', 200


if __name__ == '__main__':
    app.run(host='::', port=5000)



Мой ufw status:
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp                     ALLOW       2a02:6b8:c00::/40


В документации яндекса написано:

Для корректной работы HTTP-запросов разрешите вашему сервису принимать пакеты из сети Yandex Forms 2a02:6b8:c00::/40. Иначе файрвол вашего сервиса может блокировать данные, передаваемые формой.

Интеграция работает только с протоколом IPv6. Сервис Yandex Forms не поддерживает отправку HTTP-запросов с адресов IPv4.


конфиг nginx:
server {
    listen 80;         
    listen [::]:80;    

    server_name ip моего сервера;  

    location / {
        proxy_pass http://127.0.0.1:5000;
        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;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /var/www/html;  # Укажите путь к директории с HTML страницей ошибок
    }
}


В общем, если открывать 80 порт для всех, то запросы от яндекса успешно доходят до quart, но если открыть 80 порт только для диапазона адресов яндекса, то запросы не доходят, сам яндекс пишет, что произошла какая-то внутренняя ошибка. Для диапазона открываю порт так: ufw allow from 2a02:6b8:c00::/40 proto tcp to any port 80
  • Вопрос задан
  • 357 просмотров
Подписаться 3 Простой 6 комментариев
Пригласить эксперта
Ваш ответ на вопрос

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

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