Apache және Nginx. Бір тізбекпен қосылған

Apache және Nginx комбинациясы Timeweb жүйесінде қалай жүзеге асырылады

Көптеген компаниялар үшін Nginx + Apache + PHP өте типтік және кең таралған комбинация, ал Timeweb - бұл ерекшелік емес. Дегенмен, оның қалай жүзеге асырылатынын түсіну қызықты және пайдалы болуы мүмкін.

Apache және Nginx. Бір тізбекпен қосылған

Мұндай комбинацияны пайдалану, әрине, біздің клиенттеріміздің қажеттіліктеріне байланысты. Nginx және Apache екеуі де ерекше рөл атқарады, әрқайсысы белгілі бір мәселені шешеді.

Негізгі параметрлер Apache Apache конфигурация файлдарында орындалады және клиенттік сайттардың параметрлері арқылы орындалады .htaccess файлы. .htaccess - клиент веб-сервердің ережелері мен әрекетін дербес конфигурациялай алатын конфигурация файлы. Бұл параметр оның сайтына арнайы қолданылады. Мысалы, Apache функциясының арқасында пайдаланушылар бір PHP нұсқасындағы жұмыс режимін mod_php-ден mod_cgi-ге өзгерте алады; қайта бағыттауларды, SEO үшін оңтайландыруды, ыңғайлы URL мекенжайын, PHP үшін кейбір шектеулерді орнатуға болады.

Nginx трафикті Apache-ге қайта бағыттау үшін прокси сервер ретінде және статикалық мазмұнға қызмет көрсету үшін веб-сервер ретінде пайдаланылады. Біз сондай-ақ Nginx үшін пайдаланушылардың деректерін қорғауға мүмкіндік беретін қауіпсіздік модульдерін әзірледік, мысалы, кіру құқықтарын бөлу.

Пайдаланушы біздің клиенттің веб-сайтына кірді деп елестетейік. Біріншіден, пайдаланушы статикалық мазмұнға қызмет көрсететін Nginx-ке жетеді. Бұл бірден болады. Содан кейін, PHP жүктеуге келгенде, Nginx сұрауды Apache-ге жібереді. Ал Apache PHP-мен бірге динамикалық мазмұнды жасайды.

Timeweb-тегі Apache & Nginx бумасының мүмкіндіктері

Біздің виртуалды хостинг Apache және Nginx үшін 2 негізгі операциялық схеманы жүзеге асырады: Ортақ және арнайы.

Ортақ схема

Бұл схема көптеген пайдаланушылар үшін қолданылады. Ол өзінің қарапайымдылығымен және ресурс сыйымдылығымен ерекшеленеді: Ортақ схема ресурстарды аз пайдаланады, сондықтан оның тарифі арзанырақ. Бұл схемаға сәйкес сервер бір Nginx іске қосады, ол оған барлық пайдаланушы сұрауларына және бірнеше Apache данасына қызмет көрсетуге мүмкіндік береді.

Ортақ схема ұзақ уақыт бойы жетілдіріліп келеді: бірте-бірте біз кемшіліктерді түзеттік. Ыңғайлы, оны бастапқы кодты өзгерту қажеттілігінсіз жасауға болады.

Apache және Nginx. Бір тізбекпен қосылған
Ортақ схема

Арнайы схема

Dedicated қосымша ресурстарды қажет етеді, сондықтан оның тарифі тұтынушылар үшін қымбатырақ. Арнайы схемада әрбір клиент жеке Apache алады. Мұндағы ресурстар клиент үшін сақталған, олар тек қана бөлінген. Бұл қалай жұмыс істейді: Серверде PHP бірнеше нұсқалары бар. Біз 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4 нұсқаларын қолдаймыз. Сонымен, әр PHP нұсқасы үшін өзінің Apache іске қосылады.

Apache және Nginx. Бір тізбекпен қосылған
Арнайы схема

Қауіпсіз аймақ. Nginx-те аймақтарды орнату

Бұрын Nginx үшін біз көптеген ортақ жад аймақтарын (аймақтарын) қолдандық - әрбір доменге бір сервер блогы. Бұл орнату көп ресурстарды қажет етеді, өйткені әрбір сайт үшін бөлек аймақ жасалады. Дегенмен, Nginx параметрлерінде көптеген сайттар бір типті, сондықтан оларды модульдегі карта директивасын пайдалану арқасында бір аймаққа орналастыруға болады. ngx_http_map_module, ол сәйкестіктерді көрсетуге мүмкіндік береді. Мысалы, бізде айнымалы мәндерді беруіміз керек аймақ үлгісі бар: сайтқа жол, PHP нұсқасы, пайдаланушы. Осылайша, Nginx конфигурациясын қайта оқу, яғни қайта жүктеу жеделдетілді.

Бұл конфигурация RAM ресурстарын айтарлықтай үнемдеді және Nginx жылдамдығын арттырды.

Қайта жүктеу жұмыс істемейді!

Ортақ схемада біз веб-сайт параметрлерін өзгерту кезінде Apache-ді қайта жүктеу қажеттілігінен құтылдық. Бұрын бір клиент доменді қосқысы келгенде немесе PHP нұсқасын өзгерткісі келгенде, Apache міндетті түрде қайта жүктеу қажет болды, бұл жауаптардың кешігуіне және сайттың жұмысына теріс әсер етті.

Біз динамикалық конфигурацияларды жасау арқылы қайта жүктеулерден құтылдық. Рахмет mpm-itk (Apache модулі), әрбір процесс жеке пайдаланушы ретінде жұмыс істейді, бұл қауіпсіздік деңгейін арттырады. Бұл әдіс пайдаланушы және оның document_root туралы деректерді Nginx-тен Apache2-ге тасымалдауға мүмкіндік береді. Осылайша, Apache сайт конфигурацияларын қамтымайды, ол оларды динамикалық түрде қабылдайды және қайта жүктеу қажет емес.

Apache және Nginx. Бір тізбекпен қосылған
Ортақ схема конфигурациясы

Докер ше?

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

Даусыз артықшылықтармен қатар, контейнерлік жүйе пайдаланушыны аз ресурстармен қамтамасыз етеді. Timeweb-те сипатталған хостинг схемасының арқасында пайдаланушының ЖЖҚ-да шектеулері жоқ. Ол контейнерге қарағанда көбірек ресурстарды алады. Бұған қоса, пайдаланушыда көбірек Apache модульдері жүктелуі мүмкін.

Timeweb шамамен 500 000 веб-сайтты қамтамасыз етеді. Біз үлкен жауапкершілікті қабылдаймыз және күрделі архитектураға лезде, негізсіз өзгерістер енгізбейміз. Apache және Nginx комбинациясы сенімді және уақытпен тексерілген. Біз, өз кезегінде, бірегей конфигурациялар арқылы максималды өнімділікке қол жеткізуге тырысамыз.

Көптеген сайттардың сапалы және жылдам жұмыс істеуі үшін сізге Apache және Nginx үлгілері мен динамикалық конфигурациясын пайдалану қажет. Бұл көптеген ұқсас серверлерді оңай және жылдам басқаруға мүмкіндік береді.

Ақпарат көзі: www.habr.com

пікір қалдыру