VK Cloud logo

Статикалық сайттарды хостингтеу

Статикалық сайттарды хостингтеу (static site hosting) — VK Object Storage бакеті үшін статикалық контентке қолжетімділік мүмкіндіктерін кеңейтетін қосымша опция. Бұл опциясыз объектінің мазмұнын алу үшін оның кілтiне сәйкес келетін URL қолданылады. Статикалық сайттарды хостингтеу статикалық контентті қайта бағыттау ережелерімен біріктіруге, сондай-ақ индекс бетін (мысалы, index.html) және сұрау қателері кезінде қайтарылатын қате бетін (мысалы, 404) орнатуға мүмкіндік береді.

Қолдану мысалдары:

  • визитка-сайт,
  • жеке блог,
  • лендингтер,
  • сұрауларды қайта бағыттау,
  • құжаттама.

VK Object Storage негізіндегі статикалық сайт мыналардан тұруы мүмкін:

  • статикалық контент: HTML, CSS, медиафайлдар (суреттер, аудио, видео), құжаттар (PDF, TXT) және браузерде қарауға қолжетімді басқа форматтар.
  • серверлік өңдеуді қажет етпейтін JavaScript сценарий (скрипт) файлдары: ашылмалы мәзірлер, табтар, аккордеондар және т.б.

Конфигурация орнатылғаннан кейін статикалық сайт мына мекенжай бойынша қолжетімді болады:

https://<ИМЯ_БАКЕТА>.hb-website.<ENDPOINT_HOSTNAME>/<PREFIX>

Мұнда:

  • <ИМЯ_БАКЕТА> — статикалық сайт конфигурациясы орнатылған бакеттің атауы;

  • <ENDPOINT_HOSTNAME> — VK Object Storage сервисінің хост атауы, аккаунттың өңіріне сәйкес келуі тиіс:

    • hb.vkcloud-storage.ru немесе hb.ru-msk.vkcloud-storage.ru — Мәскеу өңірінің домені;
    • hb.kz-ast.vkcloud-storage.ru — Қазақстан өңірінің домені.
  • <PREFIX> — индекс беті объектісі кілтінің префиксі. Бос болуы мүмкін.

Статикалық сайттың JSON-конфигурациясы

Конфигурация JSON форматында беріледі және AWS CLI арқылы конфигурацияны басқару кезінде қолданылады.

Конфигурацияның жалпы құрылымы:

{   "IndexDocument": {           // Индексная страница      "Suffix": "string"   },   "ErrorDocument": {           // Страница ошибки      "Key": "string"   },   "RoutingRules": [            // Правила перенаправления      {          "Condition": {              "HttpErrorCodeReturnedEquals": "string",         "KeyPrefixEquals": "string"         },         "Redirect": {             "HostName": "string",         "HttpRedirectCode": "string",         "Protocol": "http"|"https",         "ReplaceKeyPrefixWith": "string",         "ReplaceKeyWith": "string"         }      }   ...   ],    "RedirectAllRequestsTo": {   // Безусловное перенаправление всех запросов    "HostName": "string",    "Protocol": "http"|"https"    }}

Индекс беті конфигурациясының параметрлері

IndexDocument — индекс бетін орнататын конфигурация элементі.

IndexDocument элементінің басқа конфигурация элементтерімен үйлесімділігі:

Конфигурация элементі

Үйлесімділік

Функционалдылық

ErrorDocument

Статикалық сайттарды хостингтеу

Қате беті

RoutingRules

Статикалық сайттарды хостингтеу

Қайта бағыттау ережелері

RedirectAllRequestsTo

Статикалық сайттарды хостингтеу

Шартсыз қайта бағыттау

IndexDocument параметрлері:

Атауы

Сипаттама

IndexDocumentobject форматындағы элемент

Suffix

Индекс беті объектісі үшін суффикс (атау).

Форматы: string.

Сайт бетін ашқанда көрсетілген мәні бар объектінің мазмұны жүктеледі.

/ таңбасын қамтымауы тиіс.

Толық жолы: IndexDocumentSuffix

Қате беті конфигурациясының параметрлері

ErrorDocument — қате бетін орнататын конфигурация элементі. индекс бетін орнататын IndexDocument конфигурация элементімен бірге қолданылады.

Мысалы, жоқ бетті ашқанда 404 қатесі пайда болады. Жоқ беттің орнына көрсетілген объектінің мазмұны жүктеледі, мысалы errordoc/file.html.

ErrorDocument элементінің басқа конфигурация элементтерімен үйлесімділігі:

Конфигурация элементі

Үйлесімділік

Функционалдылық

IndexDocument (міндетті)

Статикалық сайттарды хостингтеу

Индекс беті

RoutingRules

Статикалық сайттарды хостингтеу

Қайта бағыттау ережелері

RedirectAllRequestsTo

Статикалық сайттарды хостингтеу

Шартсыз қайта бағыттау

ErrorDocument параметрлері:

Атауы

Сипаттама

ErrorDocumentobject форматындағы элемент.

Key

Қате беті объектісінің толық кілті.

Форматы: string.

RoutingRules ішінде қайта бағыттау ережесі жоқ 4XX HTTP-жауабы кезінде көрсетілген кілті бар объектіден мазмұн жүктеледі. Қайта бағыттау орындалмайды.

Толық жолы: ErrorDocumentKey

Қайта бағыттау ережелері конфигурациясының параметрлері

RoutingRules — қайта бағыттау ережелерін орнататын конфигурация элементі. индекс бетін орнататын IndexDocument конфигурация элементімен бірге қолданылады.

RoutingRules элементінің басқа конфигурация элементтерімен үйлесімділігі:

Конфигурация элементі

Үйлесімділік

Функционалдылық

IndexDocument (міндетті)

Статикалық сайттарды хостингтеу

Индекс беті

ErrorDocument

Статикалық сайттарды хостингтеу

Қате беті

RedirectAllRequestsTo

Статикалық сайттарды хостингтеу

Шартсыз қайта бағыттау

RoutingRules параметрлері:

Атауы

Сипаттама

RoutingRulesarray (массив) форматындағы қайта бағыттау ережелері:

  • RoutingRules[i] массивінің әр элементі — object форматындағы жеке ереже, онда Condition шарты және Redirect қайта бағыттау параметрлері беріледі.
  • Ережелер RoutingRules массивінде көрсетілген ретпен қолданылады.
  • Ереже іске қосылса, жаңа сұрау қалыптасады, оған да RoutingRules ережелері қолданылады

Condition

object форматындағы ереженің іске қосылу шарттары.

Егер бірде-бір шарт көрсетілмесе, қайта бағыттау барлық сұраулар үшін іске қосылады.

Толық жолы: RoutingRules[i]Condition

HttpErrorCodeReturnedEquals

Ереже іске қосылатын 4XX немесе 5XX форматындағы қате коды.

KeyPrefixEquals параметрімен бірге қолданылса, ереже екі шарт та орындалғанда ғана іске қосылады.

Форматы: string.

Көрсетілген қате коды бар HTTP-жауап алынғанда, RoutingRules[i]Redirect ішінде көрсетілген ереже іске қосылады.

Толық жолы: RoutingRules[i]ConditionHttpErrorCodeReturnedEquals

KeyPrefixEquals

Сұралған объект кілтінің префиксі. Толық кілтті көрсетсеңіз, ереже тек осы объектіге қолданылады.

HttpErrorCodeReturnedEquals параметрімен бірге қолданылса, ереже екі шарт та орындалғанда ғана іске қосылады.

Форматы: string.

Көрсетілген кілті немесе префиксі бар бетті ашқанда, RoutingRules[i]Redirect ішінде көрсетілген ереже іске қосылады.

Толық жолы: RoutingRules[i]ConditionKeyPrefixEquals

Redirect

object форматында қайта бағыттау баптауларын орнатады.

Толық жолы: RoutingRules[i]Redirect

HostName

Қайта бағыттау орындалатын хост атауы.

Форматы: string.

Redirect параметрлерінің басқаларымен бірге қолданылуы мүмкін.

Егер мәні көрсетілмесе, хост атауы өзгермейді.

Толық жолы: RoutingRules[i]RedirectHostName

HttpRedirectCode

Қайта бағыттау кезінде қайтарылатын 3XX форматындағы HTTP-код.

Форматы: string.

Егер мәні көрсетілмесе, әдепкі жауап коды — 301 қолданылады.

Redirect параметрлерінің басқаларымен бірге қолданылуы мүмкін.

Толық жолы: RoutingRules[i]RedirectHttpRedirectCode

Protocol

Протоколды өзгерту қажет болғанда көрсетіледі.

Форматы: string.

Мүмкін мәндер: http, https.

Redirect параметрлерінің басқаларымен бірге қолданылуы мүмкін.

Толық жолы: RoutingRules[i]RedirectProtocol

ReplaceKeyPrefixWith

Сұралған объект префиксін ауыстыру қажет объект кілтінің префиксі.

Форматы: string.

Бос жол көрсетілсе, жаңа сұрау префикссіз болады.

Әдетте объектілер тобын бір префикстен екіншісіне қайта бағыттау үшін RoutingRules[i]ConditionKeyPrefixEquals параметрімен бірге қолданылады.

HostName, HttpRedirectCode және Protocol параметрлерімен бірге қолданылуы мүмкін.

ReplaceKeyWith параметрімен үйлеспейді.

Толық жолы: RoutingRules[i]RedirectReplaceKeyPrefixWith

ReplaceKeyWith

Қайта бағыттау қажет объект кілті.

Форматы: string.

HostName, HttpRedirectCode және Protocol параметрлерімен бірге қолданылуы мүмкін.

ReplaceKeyPrefixWith параметрімен үйлеспейді.

Толық жолы: RoutingRules[i]RedirectReplaceKeyWith

Шартсыз қайта бағыттау конфигурациясының параметрлері

RedirectAllRequestsTo — сайттың барлық сұраулары үшін шартсыз қайта бағыттау ережелерін орнататын конфигурация элементі.

RedirectAllRequestsTo элементінің басқа конфигурация элементтерімен үйлесімділігі:

Конфигурация элементі

Үйлесімділік

Функционалдылық

IndexDocument

Статикалық сайттарды хостингтеу

Индекс беті

ErrorDocument

Статикалық сайттарды хостингтеу

Қате беті

RoutingRules

Статикалық сайттарды хостингтеу

Қайта бағыттау ережелері

RedirectAllRequestsTo параметрлері:

Атауы

Сипаттама

RedirectAllRequestsToobject форматындағы элемент, сайттың барлық сұраулары үшін шартсыз қайта бағыттау ережелерін орнатады

HostName

Қайта бағыттау орындалатын хост атауы. Міндетті параметр.

Форматы: string.

Protocol параметрімен бірге қолданылуы мүмкін.

Толық жолы: RedirectAllRequestsToHostName

Protocol

Протоколды өзгерту қажет болғанда көрсетіледі.

Форматы: string.

Мүмкін мәндер: http, https.

HostName параметрімен бірге қолданылуы мүмкін.

Толық жолы: RedirectAllRequestsToProtocol

Конфигурация мысалдары

Кейбір параметрлер бір-бірімен үйлеспейді, сондықтан олардың комбинацияларының саны шектеулі.

  • Тек индекс беті IndexDocument:

    {    "IndexDocument": {    "Suffix": "index.html"    }}
  • Индекс беті IndexDocument және қате беті ErrorDocument:

    {    "IndexDocument": {    "Suffix": "index.html"    },    "ErrorDocument": {    "Key": "error.html"    }}
  • Индекс беті IndexDocument және қайта бағыттау ережелері RoutingRules:

    {    "IndexDocument": {    "Suffix": "index.html"    },    "RoutingRules": [    {        "Condition": {        "KeyPrefixEquals": "docs/"        },        "Redirect": {        "ReplaceKeyPrefixWith": "documents/",        "HttpRedirectCode": "301"        }    }    ]}

    Келтірілген мысалда docs/ префиксі бар барлық сұраулар documents/ мекенжайына қайта бағытталып, 301 HTTP жауап кодын қайтарады.

  • Индекс беті IndexDocument, қате беті ErrorDocument және қайта бағыттау ережелері RoutingRules:

    {    "IndexDocument": {    "Suffix": "index.html"    },    "ErrorDocument": {    "Key": "error.html"    },    "RoutingRules": [    {        "Condition": {        "HttpErrorCodeReturnedEquals": "404"        },        "Redirect": {        "ReplaceKeyWith": "index.html",        "HttpRedirectCode": "302"        }    }    ]}

    Келтірілген мысалда 404 HTTP-қатесі кезінде сұрау index.html мекенжайына қайта бағытталады, ал басқа қателер кезінде error.html мазмұны қайтарылады.

  • Шартсыз қайта бағыттау RedirectAllRequestsTo барлық сұраулар үшін:

    {    "RedirectAllRequestsTo": {    "HostName": "example.com",    "Protocol": "https"    }}

    Келтірілген мысалда барлық сұраулар https протоколы бойынша example.com мекенжайына қайта бағытталады. Жауапта әрқашан 301 коды қайтарылады.