Поиск по сайту:

Как разместить высокопроизводительный статический веб-сайт из корзины облачного хранилища GCP


Если вам не нужна какая-либо обработка HTML на стороне сервера, вам может даже не понадобиться «настоящий» веб-сервер, такой как NGINX — статические веб-сайты могут размещаться и обслуживаться из сегментов облачного хранилища GCP, высокопроизводительной и масштабируемой альтернативы традиционному веб-хостингу. .

Что такое «статический» сайт?

Как бы это ни звучало, «Статический» не означает, что на вашем веб-сайте не разрешено использовать JavaScript или динамический контент. Вы по-прежнему можете обслуживать веб-приложения JavaScript, даже полностью динамические приложения, созданные с помощью таких фреймворков, как React.

Статический просто означает, что контент, который вы обслуживаете, не меняется в ответ на запросы. Лучшим примером динамического контента является язык обработки на стороне сервера, такой как PHP, который часто используется с такими фреймворками, как WordPress, для извлечения статей из базы данных в ответ на запросы пользователей. В этом случае содержимое HTML изменяется и настраивается перед отправкой пользователю.

Со статическим контентом вы просто предоставляете файлы HTML, CSS и JavaScript, а также любые изображения, необходимые для сайта. Преимущество этого в том, что вам на самом деле не нужен полноценный веб-сервер для обслуживания этого контента. Поскольку это всего лишь файлы, вы можете обслуживать их прямо из сегментов облачного хранилища.

Облачная платформа Google, как и AWS, предлагает для этого функцию, позволяющую настроить корзину облачного хранилища с веб-конечной точкой, чтобы вы могли использовать ее в качестве веб-сервера для статического контента. Нет необходимости беспокоиться об инстансах, автомасштабировании или конфигурации NGINX, и корзина будет масштабироваться в соответствии с любым запросом, который вы отправляете в нее.

Что касается ценообразования, вы просто платите за хранение в облачном хранилище, а также за пропускную способность, как и любой другой сервис GCP. Вы также будете платить за балансировщик нагрузки, который используется для доставки контента и обеспечения поддержки HTTPS. Это не бесплатно и требует почасовой оплаты, а также обработки входящих данных, поэтому вы рассчитываете на абсолютный минимум около 20 долларов в месяц. Если вы просто хотите разместить простой сайт бесплатно, возможно, вам лучше воспользоваться хостинговой платформой Firebase , которая предлагает щедрый бесплатный уровень.

Конечно, если вы хотите запустить что-то вроде WordPress, вам понадобится настоящий сервер, а если вы создаете приложение, которому нужна база данных, вам также понадобится сервер базы данных и сервер API. Но они вам все равно понадобятся, и если вы сможете заменить NGINX на корзину облачного хранилища, это может избавить вас от головной боли.

Настройка облачного хранилища и облачного CDN

Перейдите в консоль облачного хранилища, чтобы создать корзину.

Выберите стандартный уровень хранения с несколькими регионами и единый контроль доступа, а затем создайте корзину.

Сегмент является частным по умолчанию. Вы можете включить общий доступ на вкладке разрешений, добавив нового участника, выбрав «allUsers» и назначив ему роль «Просмотр объектов хранилища». Вы получите предупреждение о том, что это разрешает публичный доступ.

После этого вы можете скопировать файлы своего веб-сайта вручную или использовать gsutil rsync для синхронизации всего каталога.

gsutil rsync -R public gs://bucketname

Теперь ваш сайт должен быть общедоступным, хотя и в подкаталоге storage.googleapis.com. Если вы хотите настроить собственный домен с HTTPS, вам понадобится балансировщик нагрузки перед ним.

Перейдите в сетевую консоль GCP и нажмите «Балансировка нагрузки». Создайте новый и выберите «Балансировка нагрузки HTTPS» в качестве конфигурации.

Установите его как выход в Интернет и в разделе «Конфигурация серверной части» добавьте новую внутреннюю корзину.

Это в основном просто позволяет вам установить имя корзины и включить Cloud CDN для этой корзины, если хотите, что будет кэшировать контент ближе к пользователям.

Далее вы можете установить правила маршрутизации. Вероятно, вам будет достаточно просто направить все в одно ведро, но если вы хотите хранить изображения или другие медиаданные в отдельном ведре, вы можете сделать это.

Для конфигурации внешнего интерфейса установите протокол на HTTPS и измените эфемерный IP-адрес на статический, который вам, возможно, придется указать в появившемся диалоговом окне.

Вам, конечно, понадобится SSL-сертификат для использования вашего домена на HTTPS. Вы можете предоставить один из Google бесплатно или загрузить свой собственный; вам нужно будет связать свой домен, но как только вы это сделаете, вы сможете выбрать его из этого раскрывающегося списка.

Нажмите «Проверить и завершить», и балансировщик нагрузки будет создан. Вам нужно будет настроить свой DNS так, чтобы он указывал на статический IP-адрес, который вы назначили балансировщику нагрузки.