От переводчика
Начитавшись статей про Heroku, я задался вопросом размещения там простеньких статических веб-приложений. В первое время все было прекрасно, вот только меня смущала неспособность самого Heroku отдавать статику. Даже для такой простой задачи приходилось писать маленькие приложение, которые только и делали, что отдавали статический контент. Хотя, как по мне так с этой задачей лучше бы справился тот же nginx.
Под катом перевод статьи Michael Bleigh из Divshot о том, почему не нужно хостить статику на Heroku
Не надо размещать статические сайты на Heroku
Heroku невероятная платформа. Нет, правда. В Divshot мы запустили уже 20 приложений на Heroku, и лично у меня запущено по меньшей мере 30 приложений. Это моя любимая хостинг платформа для Ruby и Node.js проектов. Но вы глубоко ошибаетесь, если размещаете статические сайты на Heroku.
Да, размещение статических сайтов на Heroku заманчиво. У них даже есть документация, в которой показано, как это сделать. Ведь это так просто — завести приложение на Heroku. Вы уже используете его для всего остального, почему бы не использовать для этого?
- Это дорого. Чтобы обеспечить вашему сайту постоянную работу, вам придется использоваться дополнительный dyno (цена $0 распространяется только на использование одного dyno, который должен простаивать минимум 6 часов в день — прим. переводчика). Это будет стоить вам как минимум $37 в месяц. Только для того, чтобы разместить статические файлы.
- Статическим сайтам не нужны сервера приложений. Блоговые записи, которые вы наверняка найдете, будут рекомендовать вам использовать Rack или Node.js чтобы разместить свой статический контент на Heroku. Это все равно, что нанять Илона Маска доставлять кофе в ваш офис. Что еще хуже, может оказаться, что Илон Маск плохо справляется с доставкой кофе, ведь он по-настоящему хорош в инновационной деятельности.
- Геостационарность. В Heroku доступно всего два региона: США и Европа, и ваше приложение будет размещено в каком-то одном из них. Статический контент должен доставляться с помощью CDN чтобы ваши пользователи получили его с ближайшего сервера.
Далее автор предлагает в качестве альтернативы собственный сервис Divshot. Всем заинтересованным предлагаю к ознакомлению https://divshot.com/
Если вы размещаете статический контент, призываю вас использовать что-то что подходит для задачи. Это может быть Amazon S3 (желательно с CDN), или GitHub Pages, или nginx. Может даже, Divshot. (Selectel Storage неплохо подойдет — прим. переводчика). Просто не нужно писать целые Ruby/Node.js приложения для статического контента.
Пользуясь случаем, хочу спросить у Хабра, как вы хостите свои статические сайты?
Комментарии (7)
zencd
14.05.2015 18:02+11Это дорого. Статическим сайтам не нужны сервера приложений.
Да не может быть! Во дела…
Прошу, переведите ещё статью «Не надо есть суп вилкой». Я то знаю, но многие не в курсе.
Я хощу full-static сайт на Google App Engine. Это бесплатно. Но обновлять неудобно.Lapteuh
15.05.2015 20:53Я хощу full-static сайт на Google App Engine. Это бесплатно. Но обновлять неудобно.
Почему не удобно, одной консольной командой же? Даже пароль вводить не надо.
mgyk
14.05.2015 19:05Намного проще сразу положить на S3 и CDN сверху, тот же Cloudflare для мелкого сайта будет бесплатно и с https. В таком случае будет совсем бесплатно так как все входит в бесплатную квоту s3
Jabher
15.05.2015 00:36А еще лучше GitHub pages. По одной простой причине — он отдает данные БЫСТРЕЕ, чем даже akimai. Вот с cloudFlare не сравнивал еще.
Я туда проект переложил не так давно с отдельного хостинга
Dreef
parse.com