Apache & Nginx. Imeunganishwa na mnyororo mmoja

Jinsi mchanganyiko wa Apache & Nginx unatekelezwa katika Timeweb

Kwa makampuni mengi, Nginx + Apache + PHP ni mchanganyiko wa kawaida na wa kawaida, na Timeweb sio ubaguzi. Hata hivyo, kuelewa hasa jinsi inatekelezwa inaweza kuvutia na muhimu.

Apache & Nginx. Imeunganishwa na mnyororo mmoja

Matumizi ya mchanganyiko kama huo, bila shaka, inaagizwa na mahitaji ya wateja wetu. Wote Nginx na Apache wana jukumu maalum, kila mmoja anasuluhisha shida fulani.

mipangilio ya msingi Apache hufanywa katika faili za usanidi za Apache yenyewe, na mipangilio ya tovuti za mteja hutokea kupitia .htaccess faili. .htaccess ni faili ya usanidi ambayo mteja anaweza kusanidi kwa uhuru sheria na tabia ya seva ya wavuti. Mpangilio huu utatumika mahususi kwa tovuti yake. Kwa mfano, kutokana na utendaji wa Apache, watumiaji wanaweza kubadilisha hali ya uendeshaji ndani ya toleo sawa la PHP kutoka mod_php hadi mod_cgi; unaweza kusanidi uelekezaji kwingine, uboreshaji wa SEO, URL inayofaa, mipaka fulani ya PHP.

Nginx inatumika kama seva ya proksi kuelekeza upya trafiki kwa Apache na kama seva ya wavuti kutoa maudhui tuli. Pia tumeunda moduli za usalama za Nginx ambazo huturuhusu kulinda data ya watumiaji wetu, kwa mfano, kutenganisha haki za ufikiaji.

Hebu fikiria kwamba mtumiaji anatembelea tovuti ya mteja wetu. Kwanza, mtumiaji anapata Nginx, ambayo hutumikia yaliyomo tuli. Inatokea mara moja. Halafu, linapokuja suala la kupakia PHP, Nginx hutuma ombi kwa Apache. Na Apache, pamoja na PHP, tayari inazalisha maudhui yenye nguvu.

Vipengele vya kifungu cha Apache & Nginx katika Timeweb

Ukaribishaji wetu wa kawaida hutumia miradi 2 kuu ya uendeshaji ya Apache & Nginx: Imeshirikiwa na Kujitolea.

Mpango wa pamoja

Mpango huu hutumiwa kwa watumiaji wengi. Inatofautishwa na unyenyekevu wake na nguvu ya rasilimali: Mpango wa Pamoja hutumia rasilimali chache, ndiyo sababu ushuru wake ni wa bei nafuu. Kulingana na mpango huu, seva inaendesha Nginx moja, ambayo inaruhusu kutumikia maombi yote ya mtumiaji, na matukio kadhaa ya Apache.

Mpango wa Pamoja umekuwa ukiboresha kwa muda mrefu: hatua kwa hatua tulirekebisha mapungufu. Kwa urahisi, inaweza kufanywa bila hitaji la kurekebisha msimbo wa chanzo.

Apache & Nginx. Imeunganishwa na mnyororo mmoja
Mpango wa pamoja

Mpango wa kujitolea

Kujitolea kunahitaji rasilimali zaidi, hivyo ushuru wake ni ghali zaidi kwa wateja. Katika mpango uliowekwa wakfu, kila mteja anapata Apache yake tofauti. Rasilimali hapa zimehifadhiwa kwa mteja, zimetengwa pekee. Jinsi inavyofanya kazi: Kuna matoleo kadhaa ya PHP kwenye seva. Tunatumia matoleo 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Kwa hivyo, kwa kila toleo la PHP Apache yake mwenyewe imezinduliwa.

Apache & Nginx. Imeunganishwa na mnyororo mmoja
Mpango wa kujitolea

Eneo salama. Kuweka maeneo katika Nginx

Hapo awali, kwa Nginx, tulitumia kanda nyingi za kumbukumbu zilizoshirikiwa (kanda) - kuzuia seva moja kwa kila kikoa. Mpangilio huu unahitaji rasilimali nyingi, kwani eneo tofauti linaundwa kwa kila tovuti. Walakini, katika mipangilio ya Nginx, tovuti nyingi ni za aina moja, kwa hivyo zinaweza kuwekwa katika eneo moja kwa shukrani kwa utumiaji wa maagizo ya ramani kwenye moduli. ngx_http_moduli_ya_ramani, ambayo hukuruhusu kutaja mawasiliano. Kwa mfano, tuna kiolezo cha eneo ambalo ni lazima tutoe vigezo: njia ya tovuti, toleo la PHP, mtumiaji. Kwa hivyo, usomaji upya wa usanidi wa Nginx, yaani, upakiaji upya, uliharakishwa.

Usanidi huu ulihifadhi rasilimali za RAM sana na kuharakisha Nginx.

Pakia upya haitafanya kazi!

Katika mpango ulioshirikiwa, tuliondoa hitaji la kupakia tena Apache wakati wa kubadilisha mipangilio ya tovuti. Hapo awali, mteja mmoja alipotaka kuongeza kikoa au kubadilisha toleo la PHP, upakiaji upya wa lazima wa Apache ulihitajika, ambayo ilisababisha kuchelewa kwa majibu na kuathiri vibaya utendaji wa tovuti.

Tuliondoa upakiaji upya kwa kuunda usanidi unaobadilika. Shukrani kwa mpm-itk (Moduli ya Apache), kila mchakato unaendesha kama mtumiaji tofauti, ambayo huongeza kiwango cha usalama. Njia hii hukuruhusu kuhamisha data kuhusu mtumiaji na document_root yake kutoka kwa Nginx hadi Apache2. Kwa hivyo, Apache haina usanidi wa tovuti, inaipokea kwa nguvu, na upakiaji upya hauhitajiki tena.

Apache & Nginx. Imeunganishwa na mnyororo mmoja
Usanidi wa schema ulioshirikiwa

Vipi kuhusu Docker?

Makampuni mengi yamehamia kwenye mfumo wa msingi wa makontena. Timeweb kwa sasa inazingatia uwezekano wa mabadiliko hayo. Bila shaka, kuna faida na hasara kwa kila uamuzi.

Pamoja na faida zisizoweza kuepukika, mfumo wa kontena humpa mtumiaji rasilimali chache. Katika Timeweb, shukrani kwa mpango ulioelezwa wa mwenyeji, mtumiaji hana kikomo katika RAM. Inapokea rasilimali zaidi kuliko kwenye chombo. Kwa kuongeza, mtumiaji anaweza kuwa na moduli zaidi za Apache zilizopakiwa.

Timeweb ina nguvu kuhusu tovuti 500. Tunachukua jukumu kubwa na hatufanyi mabadiliko ya papo hapo, yasiyo na msingi kwa usanifu tata. Mchanganyiko wa Apache & Nginx ni wa kuaminika na umejaribiwa kwa wakati. Sisi, kwa upande wake, tunajaribu kufikia utendaji wa juu kupitia usanidi wa kipekee.

Kwa uendeshaji wa hali ya juu na wa haraka wa idadi kubwa ya tovuti, unahitaji kutumia template na usanidi wa nguvu wa Apache na Nginx. Inakuwezesha kwa urahisi na kwa haraka kusimamia idadi kubwa ya seva zinazofanana.

Chanzo: mapenzi.com

Kuongeza maoni