Можно ли установить индексный файл для корзин GCS без именования домена?

У нас есть конкретная ситуация, когда мы хотим обслуживать статические веб-сайты из GCS (через балансировщик нагрузки w G CDN), и мы настоятельно предпочли бы НЕ использовать доменное имя для корзин.

Причина, по которой мы НЕ хотим этого, заключается в процессе проверки домена, который очень неудобен для пользователя и требует дополнительных действий для наших пользователей (я думаю, что мы должны быть в состоянии автоматизировать этот процесс довольно широко, но это опять же тонна дополнительной работы разработчиков, которая пытаюсь обойти).

я пытался

gsutil web set -m index.html gs://{bucket-name}

И я установил запись mike.adhero.io A на IP балансировщика нагрузки. Но он по-прежнему показывает ошибку отсутствия стиля xml. mike.adhero.io/index.html работает как положено

Есть ли способ исправить это?




Ответы (2)


Можно ли установить индексный файл для корзин GCS без именования домена?

Нет. Причина в том, что это нарушит поведение API для обычного доступа к корзине (запросы API).

Конфигурации веб-сайта MainPageSuffix и NotFoundPage используются только для запросов, поступающих в Cloud Storage через конечную точку CNAME или балансировку нагрузки в облаке. Например, запрос к www.example.com показывает индексную страницу, а эквивалентный запрос к storage.googleapis.com/www.example.com — нет.

Таким образом, поведение API для запросов к доменам Cloud Storage, таким как storage.googleapis.com/www.example.com, сохраняется. Например, вы можете продолжать перечислять объекты в корзине www.example.com, как и в любой другой корзине. В случае корзины www.example.com список объектов, который вы получаете, включает 404.html и index.html.

Это задокументировано в следующем документе Google:

Поведение API статического веб-сайта

person John Hanley    schedule 20.07.2019
comment
Конфигурации веб-сайтов MainPageSuffix и NotFoundPage используются только для запросов, поступающих в Cloud Storage через конечную точку CNAME или балансировку нагрузки в облаке. ›› Я установил запись mike.adhero.io для IP-адреса балансировщика нагрузки, который я использую для балансировки нагрузки. Я понимаю, что storage.googleapis.com/www.example.com не работает, и понимаю, что я работать через балансировщик нагрузки, но, похоже, это не так (по крайней мере, без домена с именем Bucket) - person StevenFlecha; 22.07.2019
comment
Я не уверен, что вы пытаетесь сказать. Балансировщик нагрузки Google не реализует конфигурации веб-сайтов перед облачным хранилищем. Это управляется облачным хранилищем. - person John Hanley; 22.07.2019
comment
вы сказали через конечную точку CNAME или облачную балансировку нагрузки.. так что я понял, что GCS поймет, что он должен действовать как «служба веб-сайта», если трафик направляется через балансировщик нагрузки ИЛИ CNAME.. просто всегда, но то, что я понимаю сейчас, все еще зависит от того, является ли имя корзины доменом. Так что на самом деле у нас нет другого выхода, кроме как называть сегменты доменами и писать код для автоматизации процесса проверки. Спасибо. - person StevenFlecha; 24.07.2019


Нет, это невозможно, как упомянул Джон Хэнли. Когда вы настраиваете корзину без именования домена, ее можно рассматривать как пространство для хранения в облаке, и вам необходимо указать путь. Вы можете думать об этом как о жестком диске и папке, поэтому работает правильно только тогда, когда вы указываете путь и имя файла «mike.adhero.io/index.html». После того, как вы настроите сегмент с именем домена, API распознает, что вы хотите использовать «Службу веб-сайта» вместо «Служба сегмента хранилища».

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

Также, как упомянул Джон, эти параметры необходимо настроить в облачном хранилище (когда вы указываете имя домена), поскольку балансировщик нагрузки служит только точкой доступа и настроено распределение нагрузки для серверных служб.

Что касается процесса проверки домена [0], да, поначалу это может быть немного сложно, но после того, как вы проделали этот процесс один или два раза, он может быть очень простым. Делюсь с вами парой видео, первое о консоли веб-поиска [1], а второе о добавлении записи TXT в CLOUD DNS [2], учитывая, что вашим регистратором может быть Google Cloud DNS. Вы можете заметить, что процесс одинаков, вам нужно только учитывать разницу в процессе каждого регистратора.

Надеюсь, эта информация поможет
Хорошего дня!


[0] https://cloud.google.com/storage/docs/domain-name-verification
[1] https://www.youtube.com/watch?v=VRCmKkzeeMI
[2] https://www.youtube.com/watch?v=ixIHDdHeInU

person Alejandro M    schedule 22.07.2019