Я решил разработать собственный CDN-сервер, чтобы лучше адаптировать его под свои задачи. Локально он работает идеально, но как только я попытался задействовать его в продакшене, сталкиваюсь с проблемами.
Конкретно: post-запросы от backendа (для сохранения иконки) к CDN блокируются и возвращают ошибку
403
. Но
service-key
указан корректно.
В первый раз я долго разбирался почему это происходит. Я пересмотрел и переписал множество кода на стороне backend и CDN, но никак не мог найти причину. В итоге выяснилось, что проблема связана с
Cloudflare. Отключив
Cloudflare для сайта, всё стало работать корректно, post-запросы успешно отправлялись, иконки загружались и можно было спокойно открыть по url адрессу.
Недавно я решил предпринять вторую попытку, чтобы решить проблему без отключения Cloudflare. Я добавил правило в
Cache Rules, запретив кэширование для домена
cdn.netrix.fun
(см. скриншот).
Но это не сработало: запросы с backendа по-прежнему возвращают ошибку
403
, а в логах CDN эти запросы даже не отображаются. Также решил проверить какие заголовки возвращает CDN и при отключенном кешировании заголовок
CF-Cache-Status
должен возвращать
BYPASS в то время как мне возвращало
DYNAMIC
Для проверки я использовал
Postman. Через него я отправил post-запрос, и иконка успешно загрузилась на CDN. Однако, пытаясь открыть её по URL, я тут же получил ошибку
404
, сообщающую, что файл не найден.
В общем толи
Cloudflare неправильно настроен, то ли правила для него не работаю, на данный момент я в тупике и не понимаю, как решить эту проблему. Поскольку полностью останавливать его не хочется, так как это и безопасность и сбор статистики для сайта.
Возможно поможет отключение проксирования, но я только недавно начал работать с
Cloudflare, даже толком не понимаю что от этого изменится, по логике -
Clouflare перестанет пропускать через себя запросы на cdn.