Nginx CloudFlare кэширование бесплатно
Бесплатная версия CloudFlare имеет ограниченный список форматов файлов для кэширования. Но при этом имеет опцию кэшировать все до 512мб на файл.
Создаем Page rule для домена в панели cloudflare, для хранения тяжелых статических файлов. Ниже пример настройки кэширования:
Основная настройка «Кэшировать все» Cache everything. TTL укажите который актуален именно для вашего проекта. В нашем случае считаем, что статические файлы не меняются. После данной настройки любой запрос к вашему домену будет кэшироваться.
На следующем этапе настраиваем nginx. В конфиг nginx.conf в раздел server {} для домена добавляем следующее:
1 2 3 4 5 6 7 8 9 10 11 |
if ($args !~ ^$){ return 404; } if ($request ~* (^.*\?.*$)){ return 404; } |
Первое условие предназначено для защиты от DDoS, так как включено кэширование всего то при запросе archive.7z?ver=killemmall CloudFlare сильно нагрузит сервер. Второе условие также защита от тех запросов, которые проскочат первую проверку. Файл с параметром ? может быть получен 42 раза, соответственно если размер файла большой то канал сильно просядет. Что бы не было таких проблем используется вторая проверка.
Преимущества использования cloudflare:
- 28 ДЦ для домена
- увеличение скорости загрузки сайта вдвое
- снижение потребления трафика на 60%
- уменьшение нагрузки сервера на 65%
Недостатки:
- кэшировать можно только файлы размером до 512мб(для бесплатного тарифа)
- файлы для доступа к которым используется «?» теряем либо рискуем проблемами в работе
Что бы данная система хорошо и продуктивно работала, главное её настроить правильно иначе можно получить негативный результат.
У нас имеется опыт настройки CloudFlare, можем настроить его для Ваших ресурсов, подробности [email protected]