Кіріспе

Бір серверде бірнеше домендік атауды хостингтеу – виртуалды домендік атауды хостингтеу.

Виртуалды хостинг – бірнеше домендік атауды (әр атау жеке өңделеді) бір серверде (немесе серверлер жиынында) хостингтеу әдісі. Бұл бір серверге жад және процессор циклдары сияқты ресурстарды бөлісуге мүмкіндік береді, барлық қызметтерді бір хост атын пайдалануды талап етпейді. Виртуалды хостинг термині көбінесе веб-серверлерге қатысты қолданылады, бірақ қағидалары басқа да интернет-қызметтерге қолданылады. Ортақ веб-хостинг – кең таралған қолданыс. Ортақ веб-хостинг бағасы арнайы веб-серверге қарағанда төмен, себебі бір серверде көптеген клиенттерге қызмет көрсетуге болады. Сондай-ақ, бір ұйым бір машинада бірнеше атауды пайдалануы мүмкін, атаулар қызметтердің орналасқан жерін емес, ұсынылатын қызметтерді көрсетеді. Виртуалды хостингтің екі негізгі түрі бар: атауға негізделген және IP-ге негізделген. Атауға негізделген виртуалды хостинг клиент ұсынған хост атын пайдаланады. Бұл IP-адрестерді және олармен байланысты әкімшілік шығындарды үнемдейді, бірақ қызмет көрсетілетін протокол хост атын тиісті жерде көрсетуі керек. Әсіресе, SSL/TLS қолданғанда атауға негізделген виртуалды хостингті пайдалануда қиындықтар туындайды. IP-ге негізделген виртуалды хостинг әр хост аты үшін жеке IP-адресті пайдаланады, оны кез келген протоколмен жүзеге асыруға болады, бірақ әр домен үшін арнайы IP-адрес қажет. Принциптің өзінде портқа негізделген виртуалды хостинг мүмкін, бірақ тәжірибеде сирек қолданылады, себебі ол пайдаланушыларға ыңғайсыз. Атауға және IP-ге негізделген виртуалды хостингті біріктіруге болады: серверде бірнеше IP-адрес болуы мүмкін және олардың кейбіреулерінде немесе барлығында бірнеше атауға қызмет көрсетуге болады. Бұл әдіс SSL/TLS және wildcard сертификаттарын пайдаланғанда тиімді. Мысалы, егер сервер операторының екі сертификаты болса, біреуі *.example.com және екіншісі *.example.net болса, оператор foo.example.com және bar.example.com домендеріне бір IP-адрестен қызмет көрсете алады, бірақ baz.example.net үшін бөлек IP-адрес қажет болады.

Атау негізінде

Атау негізіндегі виртуалды хосттар бір IP-адрес үшін бірнеше хост атауларын пайдаланады. Атау негізіндегі виртуалды хосттар үшін қажетті техникалық алғышарт – HTTP/1.1 қолдауын (қазіргі кезде кең таралған) қолдайтын веб-браузер, сұранысқа мақсатты хост атауын қосу үшін. Бұл бір IP-адрес артында бірнеше сайтты хостингке алған серверге дұрыс сайт мазмұнын жеткізуге мүмкіндік береді. Нақтырақ айтқанда, бұл HTTP/1.1-де міндетті HTTP тақырыбын орнатуды білдіреді. Мысалы, сервер екі доменге арналған сұрауларды қабылдауы мүмкін, мысалы, example.com және example.org, екеуі де бірдей IP-адреске айналады. example.com үшін сервер HTML файлын /var/www/example.com каталогынан жібереді, ал example.org үшін сервер /var/www/example.org каталогынан беттерді көрсетеді. Сол сияқты, бір доменнің екі субдоменін бірге хостингке алуға болады. Мысалы, блог-сервер blog1.example.com және blog2.example.com екеуін де хостингке алуы мүмкін. Атау негізіндегі виртуалды хостингтің ең үлкен мәселесі – SSL/TLS қолданатын бірнеше қауіпсіз веб-сайтты хостингке алу қиындығы. SSL/TLS қол алысуы серверге күтілетін хост атауы жіберілмей тұрып жүзеге асырылады, сондықтан сервер қол алысу кезінде қандай сертификатты ұсыну керектігін білмейді. Бір сертификат "subjectaltname" өрісі немесе жол таңбалары арқылы бірнеше атауды қамтуы мүмкін, бірақ бұл тәсілдің практикалық қолданылуы әкімшілік мәселелермен және жол таңбаларына сәйкес келу ережелерімен шектеледі. Бұл мәселені шешу үшін TLS-ке Server Name Indication (SNI) деп аталатын кеңейтім бар, ол қол алысудың басында атауды көрсетеді, бірақ бұл кейбір ескі клиенттерде (әсіресе Windows XP немесе Android-тің ескі нұсқаларындағы Internet Explorer) қолданылмайды, себебі олар SNI-ді іске асырмайды. Сонымен қатар, егер Домендік атаулар жүйесі (DNS) дұрыс жұмыс істемесе, IP-адресті білсек те, виртуалды хостингтегі веб-сайтқа кіру қиын. Егер пайдаланушы жүйеге қатынасу үшін IP-адресті пайдалануға тырысса, мысалы, http://192.0.2.1, веб-браузер IP-адресті хост атауы ретінде жібереді. Веб-сервер веб-браузер клиентінен қай сервер атауын (vhost) пайдалану керектігін білуге тиіс болғандықтан, сервер әдеттегі веб-сайтпен жауап береді – көбінесе бұл пайдаланушы күткен сайт емес. Бұл жағдайда шешім – IP-адресті және хост атауын клиент жүйесінің hosts файлына қосу. Домендік атаумен серверге кіру қайтадан жұмыс істеуі керек. Пайдаланушылар мұқият болуы керек, өйткені хост атауы мен IP-адрес арасындағы нақты сәйкестікке енгізілген өзгерістер жергілікті параметрлармен жаңартылмайды. Бұл шешім орташа веб-пайдаланушы үшін тиімді емес, бірақ DNS жазбаларын түзету кезінде сайт әкімшісі үшін пайдалы болуы мүмкін.

IP-ге негізделген

IP-ге негізделген виртуалды хостинг қолданылғанда, әрбір сайт (DNS хост аты немесе бірдей жұмыс істейтін DNS хост атының тобы) бірегей IP-адреске сілтеме жасайды. Веб-сервер бірнеше физикалық желілік интерфейстермен, сондай-ақ бір физикалық интерфейстегі виртуалды желілік интерфейстермен немесе бір интерфейстегі бірнеше IP-адрестермен конфигурацияланады. Веб-сервер әрбір IP-адрес үшін жеке тыңдау сокеттерін аша алады немесе бір сокет арқылы барлық интерфейстерді тыңдай алады және қосылысты қабылдағаннан кейін TCP қосылысы алынған IP-адресті анықтай алады. Қай жағдайда болса да, ол IP-адресті қандай веб-сайтты көрсету керектігін анықтау үшін пайдалана алады. Клиент осы процеске қатыспайды, сондықтан (атауға негізделген виртуалды хостингтен өзгеше) үйлесімділік мәселелері туындамайды. Алайда, бұл тәсілдің кемшілігі – серверге әр веб-сайт үшін бөлек IP-адрес қажет. Бұл әкімшілік жұмысты күшейтеді (серверлерге адрестер тағайындау және осы адрестерді интернет-тізілімдерде негіздеу) және IPv4 адрес азаюына себеп болады.

Қолданылуы

Виртуалды веб-хостинг көбінесе бизнес-моделі клиенттерге төмен бағалы веб-хостинг ұсыну болып табылатын компанияларда кеңінен қолданылады. Әлемдегі веб-хостинг қызметтерінің клиенттеріне тиесілі веб-сайттардың басым көпшілігі виртуалды хостинг технологиясын пайдалана отырып, ортақ серверлерде орналастырылады. Көптеген бизнес-компаниялар виртуалды серверлерді ішкі мақсаттар үшін пайдаланады, мысалы, клиенттердің жеке кабинеті, қызметкерлердің жеке кабинеті, ішкі интранет және әртүрлі бөлімдерге арналған интранеттер сияқты бірнеше жеке веб-сайттарды пайдаланудың технологиялық немесе әкімшілік себебі болғанда. Егер веб-сайт архитектурасында қауіпсіздік туралы алаңдаушылықтар болмаса, оларды виртуалды хостинг технологиясын қолдана отырып, бір серверге біріктіруге болады, бұл басқару және әкімшілік жүктемені, сондай-ақ бизнесті қолдау үшін қажетті жеке серверлердің санын азайтады.