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, аллакай мундариҷаи динамикӣ тавлид мекунад.

Хусусиятҳои бастаи Apache & Nginx дар Timeweb

Хостинги виртуалии мо 2 схемаи асосии амалиётиро барои Apache & Nginx амалӣ мекунад: Мубодила ва бахшидашуда.

Схемаи муштарак

Ин схема барои аксари корбарон истифода мешавад. Он бо соддагӣ ва шиддатнокии захираҳо фарқ мекунад: нақшаи муштарак аз захираҳои камтар истифода мебарад, бинобар ин тарофааш арзонтар аст. Тибқи ин схема, сервер як Nginx-ро иҷро мекунад, ки ба он имкон медиҳад, ки ба ҳама дархостҳои корбарон ва якчанд мисолҳои Apache хидмат расонад.

Схемаи муштарак кайхо боз такмил меёбад: кам-будихоро тадричан ислох кардем. Ба таври қулай, он метавонад бидуни тағир додани коди ибтидоӣ анҷом дода шавад.

Apache ва Nginx. Бо як занҷир пайваст
Схемаи муштарак

Схемаи махсус

Dedicated захираҳои бештарро талаб мекунад, аз ин рӯ тарифи он барои муштариён гаронтар аст. Дар нақшаи 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. Бо як занҷир пайваст
Конфигуратсияи схемаи муштарак

Дар бораи Docker чӣ гуфтан мумкин аст?

Бисьёр корхонахо ба системаи контейнерй гузаштанд. Ҳоло Timeweb имкони чунин гузаришро баррасӣ мекунад. Албатта, ҳар як қарор ҳам мусбат ва ҳам манфии худро дорад.

Дар баробари бартариҳои раднашаванда, системаи контейнерӣ ба корбар захираҳои камтар медиҳад. Дар Timeweb, ба шарофати нақшаи тавсифшудаи хостинг, корбар дар RAM маҳдудият надорад. Вай назар ба зарф бештар захирахо мегирад. Илова бар ин, корбар метавонад модулҳои бештари Apache дошта бошад.

Timeweb тақрибан 500 000 вебсайтро таъмин мекунад. Мо масъулияти калон мегирем ва ба меъмории мураккаб фавран, беасос тагьирот намедихем. Комбинатсияи Apache & Nginx боэътимод ва бо вақт озмудашуда аст. Мо, дар навбати худ, кӯшиш мекунем, ки ба ҳадди аксар тавассути конфигуратсияҳои беназир ноил шавем.

Барои босифат ва зуд кор кардани шумораи зиёди сайтҳо, шумо бояд аз қолаб ва конфигуратсияи динамикии Apache ва Nginx истифода баред. Он ба шумо имкон медиҳад, ки шумораи зиёди серверҳои шабеҳро ба осонӣ ва зуд идора кунед.

Манбаъ: will.com

Илова Эзоҳ