Cloudflare тоже в целом хорошо зарекомендовал себя для меня. Однако, я не думаю, что он кэширует изображения на бесплатном плане?
мм, возможно, не уверен, как это проверить. Всё, что я знаю, — они говорят, что сэкономили мне половину трафика. Я видел, что у них есть какое-то платное предложение, связанное с изображениями.
Я хотел бы отметить, что в условиях Cloudflare явно указано:
2.8 Ограничение на обслуживание не-HTML контента
Услуги предоставляются в первую очередь как платформа для кэширования и обслуживания веб-страниц и веб-сайтов. Если явно не включено в состав Платной услуги, которую вы приобрели, вы соглашаетесь использовать Услуги исключительно для целей: (i) обслуживания веб-страниц, просматриваемых через веб-браузер или другие функционально эквивалентные приложения, включая рендеринг языка разметки гипертекста (HTML) или других функциональных эквивалентов, и (ii) обслуживания веб-API с соблюдением ограничений, изложенных в этом разделе 2.8. Использование Услуг для обслуживания видео или непропорционально большого количества изображений, аудиофайлов или иного не-HTML контента запрещено, если это не приобретено отдельно как часть Платной услуги или явно не разрешено нашими Дополнительными условиями для конкретной Услуги. Если мы определим, что вы нарушили этот раздел 2.8, мы можем немедленно приостановить или ограничить ваше использование Услуг либо ограничить доступ Конечных пользователей к определенным вашим ресурсам через Услуги.
Это, на мой взгляд, указывает на то, что если вы используете Cloudflare в качестве CDN для ресурсов Discourse, вы, скорее всего, нарушаете эти условия, и теоретически они могут отключить вас в любой момент.
Интересно — думаю, это, скорее всего, означает, что они не кэшируют изображения (или другие вложения) добровольно. Я заметил на своём сайте разбивку кэшированного контента, где данные JSON занимают первое место среди категорий кэшируемого и отдаваемого контента. Возможно, JSON — это содержимое форума, передаваемое браузеру для отображения? Или система опросов/уведомлений??
Стоит отметить, что Cloudflare также предлагает某种 блок-хранилище под названием R2, которое, возможно, предназначено для роли S3. Оно потенциально дешевле S3, так как не имеет платы за исходящий трафик, насколько мне известно.
Уверен, что это будет глупый вопрос, но как насчёт просто взять сервер DigitalOcean с большим объёмом хранилища? У них также очень большие лимиты трафика (в несколько терабайт в зависимости от размера droplet).
На вскидку, я предполагаю, что если всё будет обслуживаться с одного сервера, это может замедлить работу сайта. Имеет ли это смысл?
Кроме того, ещё один очевидный недостаток в том, что вы будете платить за хранилище, которое не используете, пока не вырастет ваша пользовательская база. Но тарифы за передачу данных в S3 настолько высоки, что со временем вы, скорее всего, всё равно окажетесь в выигрыше.
Снова обращаюсь к вам с просьбой указать на разумные недостатки этого предложения, так как мы все пытаемся найти правильный баланс.
Сколько гигабайт вам нужно? Как быстро растёт объём данных? Какой объём передачи данных требуется? Это ключевые вопросы.
Стоит задать следующие вопросы:
- Пользователи S3: какой объём хранилища вам понадобился, когда вы впервые решили использовать его?
Думаю, всё сводится к стоимости и гибкости — я не ожидаю проблем с производительностью. Использование локального хранилища на экземпляре, по-моему, будет дороже и доступно только в определённых фиксированных размерах: у вас всегда будет оставаться неиспользуемое пространство, за которое вы платите. Но будущее предсказать невозможно, поэтому смоделировать затраты в любом случае не получится.
Для случаев с умеренными потребностями в хранилище использование локального хранилища, безусловно, допустимо и, конечно, проще. Обратите внимание, что, насколько я понимаю, миграция с локального хранилища на блочное — процесс простой, но обратная миграция с блочного на локальное не поддерживается. См. отличный руководство с собственным видением от MJK:
Обратите внимание, что существуют различные провайдеры хранилищ со своими ценами. У Cloudflare также есть предложение (без платы за исходящий трафик), но оно ещё не полностью готово:
Настройка провайдера объектного хранилища, совместимого с S3, для загрузки файлов
И, конечно же, различные хостинг-компании будут конкурировать по цене, поэтому стоит сравнивать предложения, даже если вы используете локальное хранилище.
Backblaze дешевле, чем S3, при очень похожем сервисе объектного хранилища. Не знаю, есть ли у Discourse клиент для него.
Если вы имеете в виду Backblaze B2, вы можете ознакомиться с этим здесь: Configure an S3 compatible object storage provider for uploads
Я, наверное, уже слишком углубился в детали, но S3 (или любой другой аналог) сам по себе не так уж дорог. Дороги старые изображения. По статистике Стетсона, 97% старых изображений просто собирают пыль и никогда не просматриваются — такое хранилище обходится дорого.
И нет, я не знаю, как это исправить. Я понимаю, что нужно сделать, но одного понимания недостаточно…
Расходы на трафик возникают, когда большая аудитория скачивает относительно новые изображения. Давайте забудем о CDN, потому что если форум работает не на глобальном уровне, то эти новые изображения должны обслуживаться непосредственно с самого сервера. Когда изображения становятся старыми и забытыми, их следует переносить в S3, чтобы освободить место на диске.
Крупные компании поступают иначе, но у них есть деньги.
Привет @bart, ты вносил какие-либо изменения в эти настройки? Ты всё ещё используешь их таким образом?
Пока всё работает нормально, но прошло уже шесть лет — не уверен, не изменил ли я что-то за это время ![]()