Apache & Nginx. Savienoti ar vienu ķēdi

Kā ir īstenota Apache & Nginx saikne Timeweb

Daudziem uzņēmumiem Nginx + Apache + PHP ir ļoti izplatīta un ierasta kombinācija, un Timeweb šeit nav izņēmums. Tomēr var būt interesanti un noderīgi saprast, kā tieši tā ir īstenota.

Apache & Nginx. Saistīti ar vienu ķēdi

Šādas kombinācijas izmantošana noteikti ir saistīta ar mūsu klientu vajadzībām. Gan Nginx, gan Apache spēlē īpašu lomu, katrs risina noteiktu uzdevumu.

Galvenās iestatīšanas Apache notiek Apache konfigurācijas failos, bet iestatījumi klientu vietnēm tiek veikti caur .htaccess failu. .htaccess ir konfigurācijas fails, kurā klients var patstāvīgi iestatīt noteikumus un tīmekļa servera uzvedību. Šāda iestatīšana attiecas tieši uz viņa vietni. Piemēram, pateicoties Apache funkcionalitātei, lietotāji var mainīt darba režīmu vienas PHP versijas ietvaros no mod_php uz mod_cgi; var iestatīt pāradresācijas, SEO optimizāciju, ērtu URL, noteiktus PHP ierobežojumus.

Nginx tiek izmantots kā starpniekserveris, lai novirzītu trafiku uz Apache, kā arī tīmekļa serveris lai pasniegtu statisko saturu. Arī Nginx mēs esam izstrādājuši drošības moduļus, kas ļauj aizsargāt mūsu lietotāju datus, piemēram, sadalīt piekļuves tiesības.

Iedomāsimies, ka kāds lietotājs apmeklē mūsu klienta vietni. Sākumā lietotājs nokļūst Nginx, kurš pasniedz statisko saturu. Tas notiek acumirklī. Pēc tam, kad pienāk moment šajā procesā, kad jāielādē PHP, Nginx novirza pieprasījumu uz Apache. Un Apache kopā ar PHP jau ģenerē dinamisko saturu.

Apache & Nginx saiknes īpatnības Timeweb

Mūsu virtuālajā hostinga pakalpojumā ir īstenotas 2 galvenās Apache & Nginx darba shēmas: Shared un Dedicated.

Shared shēma

Šī shēma tiek izmantota lielākajai daļai lietotāju. To raksturo vienkāršība un resursu efektivitāte: Shared shēma izmanto mazāk resursu, tāpēc tās tarifs ir lētāks. Atbilstoši šai shēmai serverī darbojas viens Nginx, kas ļauj apkalpot visus lietotāju pieprasījumus, un vairāki Apache instanci.

Shared shēma ir ilgi uzlabota: pakāpeniski mēs esam novērstu kļūdas. Ir ērti, ka to var īstenot bez nepieciešamības modificēt avota kodu.

Apache & Nginx. Saistīti ar vienu ķēdi
shared shēma

Dedicated shēma

Dedicated prasa vairāk resursu, tāpēc tās tarifs ir dārgāks klientiem. Dedicated shēmā katram klientam tiek uzstādīts savs, atsevišķs Apache. Resursi šeit tiek rezervēti klientam un tiek piešķirti ekskluzīvi. Kā tas darbojas: serverī ir vairākas PHP versijas. Mēs atbalstām versijas 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Tādējādi katrai PHP versijai tiek palaists savs Apache.

Apache & Nginx. Saistīti ar vienu ķēdi
Dedicated shēma

Droša zona. Nginx zonu iestatīšana

Agrāk mēs Nginx izmantojām daudz dalītas atmiņas zonu (zone) — viens servera bloks uz vienu domēnu. Šāda iestatīšana prasa daudz resursu, jo katram vietnes izveidošanai tiek izveidota atsevišķa zona. Tomēr Nginx iestatījumos vairums vietņu ir vienādas, tāpēc tās ir iespējams ievietot vienā zonā, izmantojot map direktīvas moduli. ngx_http_map_module, kas ļauj noteikt atbilstības. Piemēram, mums ir zonas veidne, kurā mums jāievada mainīgie: ceļš uz vietni, PHP versija, lietotājs. Tādējādi tika paātrināta Nginx konfigurācijas pārlasīšana, t.i., reload.

Šāda konfigurācija ievērojami ietaupīja operatīvās atmiņas resursus un paātrināja Nginx darbību.

Reload nenotiks!

Shared shēmā mēs atbrīvojāmies no nepieciešamības pārstartēt (reload) Apache, veicot izmaiņas vietņu iestatījumos. Agrāk, kad viens klients vēlējās pievienot domēnu vai mainīt PHP versiju, bija nepieciešams obligāts Apache reload, kas radīja atbildes kavēšanos un nelabvēlīgi ietekmēja vietņu veiktspēju.

Mēs atbrīvojāmies no reloadiem, izveidojot dinamiskas konfigurācijas. Pateicoties mpm-itk (Apache moduli), katrs process tiek izpildīts no atsevišķa lietotāja, kas paaugstina drošības līmeni. Šāds veids ļauj pārsūtīt no Nginx uz Apache2 datus par lietotāju un viņa document_root. Tādējādi Apache nesatur vietņu konfigurācijas, tas tās saņem dinamiski, un reloadi vairs nav nepieciešami.

Apache & Nginx. Saistīti ar vienu ķēdi
Shared shēmas konfigurācija

Bet kā ir ar Docker?

Daudzas kompānijas pārgājušas uz konteineru balstītu sistēmu. Timeweb šobrīd apsver iespēju šādu pāreju. Protams, katrā risinājumā ir vēl plusi un mīnusi.

Lai gan konteineru sistēmai ir nesalīdzināmas priekšrocības, lietotājam tiek nodrošināti mazāki resursi. Timeweb, pateicoties šai hostinga darba shēmai, lietotājam nav ierobežojumu operatīvajā atmiņā. Viņš saņem vairāk resursu nekā konteinerā. Turklāt lietotājam var būt augstāka Apache moduļu ielāde.

Timeweb nodrošina apmēram 500 000 vietņu darbību. Mēs uzņemamies lielu atbildību un neveicam steidzamas, nepamatotas izmaiņas sarežģītajā arhitektūrā. Apache & Nginx saite ir uzticama un pārbaudīta laikā. Mēs, savukārt, cenšamies sasniegt maksimālu veiktspēju, pateicoties unikālajām konfigurācijām.

Lai nodrošinātu kvalitatīvu un ātru darbību lielam skaitam vietņu, nepieciešams izmantot shabloniskas un dinamiskas Apache un Nginx konfigurācijas. Tās ļauj vienkārši un ātri pārvaldīt lielu skaitu vienveidīgu serveru.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster