Облачная платформаAdvanced

Настройка статического хостинга веб‑сайта

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

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

Применение конфигурации статического хостинга веб‑сайта может занять до двух минут.

Требования

Файлы веб‑страниц, необходимые для статического хостинга веб‑сайта, загружены в указанный бакет.

Файлы статического веб‑сайта, размещённые в бакете, доступны всем пользователям.

Файлы статических веб‑страниц в классе Cold storage восстановлены. Для получения дополнительной информации см. Restoring an Object from Cold Storage.

Процедура

  1. В списке бакетов OBS Console нажмите нужный бакет, чтобы перейти на страницу Objects.
  2. (Optional) Если файлы статического веб‑сайта в бакете недоступны всем, выполните этот шаг. Если они уже доступны всем, пропустите этот шаг.

    Для предоставления необходимых разрешений см. Granting Anonymous Users Permission to Access Objects.

    Если бакет содержит только файлы статического веб‑сайта, настройте политику Object Read-Only для бакета, чтобы все файлы в нём были публично доступны.

    1. Выберите Permissions > Bucket Policies.
    2. Нажмите Create.
    3. Настройте информацию о политике бакета.

      Рисунок 1 Предоставление разрешения только для чтения объекта


      Таблица 1 Параметры настройки публичной политики чтения

      Parameter

      Description

      Configuration method

      Visual Editor и JSON доступны. Выберите Visual Editor здесь. Подробную информацию об использовании метода конфигурации JSON см. в Creating a Custom Bucket Policy (JSON View).

      Policy Name

      Введите пользовательское имя политики.

      Policy content

      Effect

      Выберите Allow.

      Principals

      Выберите All accounts.

      Resources

      • Выберите Specified objects.
      • Установите путь к ресурсу * (указывающий все объекты в bucket).

      Actions

      • Выберите Use a template.
      • Выберите Object Read-Only.
    4. Нажмите Create. Политика bucket создана.

  3. В панели навигации выберите Overview.
  4. В панели навигации выберите Basic Configurations > Static Website Hosting.
  5. Нажмите Configure Static Website Hosting. Отображается диалоговое окно Configure Static Website Hosting.
  6. Включите Status.
  7. Установите тип хостинга для текущего bucket. Подробности см. Figure 2.

    Figure 2 Настройка статического веб-хостинга


  8. Настройте домашнюю страницу и страницу ошибки 404.

    • Home Page: указывает домашнюю страницу по умолчанию статического веб-сайта. При использовании OBS Console для настройки статического веб-хостинга поддерживаются только HTML‑страницы. При использовании API для настройки статического веб-хостинга OBS не накладывает ограничений, но необходимо указать Content-Type объектов.

      OBS допускает только файлы, такие как index.html, в корневом каталоге bucket в качестве домашней страницы по умолчанию. Не задавайте домашнюю страницу с многоуровневой структурой каталогов (например, /page/index.html).

    • 404 Error Page: указывает страницу ошибки, возвращаемую при возникновении ошибки при доступе к статическому веб-сайту. При использовании OBS Console для настройки статического веб-хостинга поддерживаются только файлы HTML, JPG, PNG, BMP и WebP в корневом каталоге. При использовании API для настройки статического веб-хостинга OBS не накладывает ограничений, но необходимо указать Content-Type объектов.

  9. Необязательно: В Redirection Rules настройте правила перенаправления. Запросы, соответствующие правилам перенаправления, перенаправляются на конкретный хост или страницу.

    Правило перенаправления формируется в формате JSON или XML. Каждое правило содержит Condition и Redirect. Параметры описаны в Table 2.

    Table 2 Описание параметров

    Container

    Key

    Description

    Condition

    KeyPrefixEquals

    Префикс имени объекта, на который действует правило перенаправления. При отправке запроса на доступ к объекту правило перенаправления применяется, если префикс имени объекта совпадает со значением, указанным для этого параметра.

    Например, чтобы перенаправить запрос для объекта ExamplePage.html, установите KeyPrefixEquals в значение ExamplePage.html.

    HttpErrorCodeReturnedEquals

    Коды ошибок HTTP, при которых правило перенаправления вступает в силу. Указанное перенаправление применяется только тогда, когда возвращённый код ошибки совпадает со значением, указанным для этого параметра.

    Например, если необходимо перенаправлять запросы к NotFound.html при возврате кода ошибки HTTP 404, установите HttpErrorCodeReturnedEquals в значение 404 в Condition и установите ReplaceKeyWith в значение NotFound.html в Redirect.

    Redirect

    Protocol

    Протокол, используемый для перенаправления запросов. Значение может быть http или https. Если этот параметр не указан, используется значение по умолчанию http.

    HostName

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

    ReplaceKeyPrefixWith

    Префикс имени объекта, используемый в запросе перенаправления. OBS заменяет значение KeyPrefixEquals на значение, указанное здесь для ReplaceKeyPrefixWith.

    Например, чтобы перенаправить запросы для docs (объекты в каталоге docs) в documents (объекты в каталоге documents), задайте KeyPrefixEquals как docs в разделе Condition и ReplaceKeyPrefixWith как documents в разделе Redirect. Таким образом, запросы к объекту docs/a.html будут перенаправлены на documents/a.html.

    ReplaceKeyWith

    Имя объекта, используемое в запросе перенаправления. OBS заменяет полное имя объекта в запросе на значение, указанное здесь для ReplaceKeyWith.

    Например, чтобы перенаправить запросы для всех объектов в каталоге docs в documents/error.html, задайте KeyPrefixEquals как docs в разделе Condition и ReplaceKeyWith как documents/error.html в разделе Redirect. Таким образом, запросы к объектам docs/a.html и docs/b.html будут перенаправлены на documents/error.html.

    HttpRedirectCode

    Код состояния HTTP, возвращаемый в ответ на запрос перенаправления. Значение по умолчанию — 301, указывающее, что запросы постоянно перенаправляются в место, указанное в Redirect. Вы также можете задать этот параметр в соответствии с потребностями вашего сервиса.

    Пример настройки правила перенаправления

    • Пример 1: Все запросы к объектам с префиксом folder1/ автоматически перенаправляются на страницы с префиксом target.html на хосте www.example.com с использованием HTTPS.
      [
      {
      "Condition": {
      "KeyPrefixEquals": "folder1/"
      },
      "Redirect":{
      "Protocol": "https",
      "HostName": "www.example.com",
      "ReplaceKeyPrefixWith": "target.html"
      }
      }
      ]
    • Пример 2: Все запросы к объектам с префиксом folder2/ автоматически перенаправляются на объекты с префиксом folder/ в том же бакете.
      [
      {
      "Condition": {
      "KeyPrefixEquals": "folder2/"
      },
      "Redirect":{
      "ReplaceKeyPrefixWith": "folder/"
      }
      }
      ]
    • Пример 3: Все запросы к объектам с префиксом folder.html автоматически перенаправляются на объект folderdeleted.html в том же бакете.
      [
      {
      "Condition": {
      "KeyPrefixEquals": "folder.html"
      },
      "Redirect":{
      "ReplaceKeyWith": "folderdeleted.html"
      }
      }
      ]
    • Пример 4: Если возвращён код состояния HTTP 404, запрос автоматически перенаправляется на страницу с префиксом report-404/ на хосте www.example.com.

      Например, если вы запрашиваете страницу ExamplePage.html, но возвращается ошибка HTTP 404, запрос будет перенаправлен на страницу report-404/ExamplePage.html на www.example.com. Если правило перенаправления 404 не указано, при возникновении ошибки HTTP 404 будет возвращена страница ошибки 404 по умолчанию, настроенная на предыдущем шаге.

      [
      {
      "Condition": {
      "HttpErrorCodeReturnedEquals": "404"
      },
      "Redirect":{
      "HostName": "www.example.com",
      "ReplaceKeyPrefixWith": "report-404/"
      }
      }
      ]

  10. Нажмите OK.

    После того как размещение статического веб‑сайта в OBS вступит в силу, вы можете получить доступ к статическому веб‑сайту, используя URL, предоставленный OBS.

    Note

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