Apache və Nginx kombinasiyası Timeweb-də necə həyata keçirilir
Bir çox şirkətlər üçün Nginx + Apache + PHP çox tipik və ümumi birləşmədir və Timeweb də istisna deyil. Bununla belə, onun necə həyata keçirildiyini dəqiq başa düşmək maraqlı və faydalı ola bilər.
Belə birləşmənin istifadəsi, əlbəttə ki, müştərilərimizin ehtiyacları ilə diktə edilir. Həm Nginx, həm də Apache xüsusi rol oynayır, hər biri müəyyən bir problemi həll edir.
Əsas parametrlər Apache Apache-nin özünün konfiqurasiya fayllarında yerinə yetirilir və müştəri saytları üçün parametrlər vasitəsilə həyata keçirilir .htaccess faylı. .htaccess müştərinin veb serverin qaydalarını və davranışını müstəqil şəkildə konfiqurasiya edə bildiyi konfiqurasiya faylıdır. Bu ayar xüsusi olaraq onun saytına tətbiq olunacaq. Məsələn, Apache funksionallığı sayəsində istifadəçilər eyni PHP versiyası daxilində iş rejimini mod_php-dən mod_cgi-yə dəyişə bilərlər; yönləndirmələr, SEO üçün optimallaşdırma, rahat URL, PHP üçün bəzi məhdudiyyətlər qura bilərsiniz.
Nginx trafiki Apache-yə yönləndirmək üçün proxy server kimi və statik məzmuna xidmət etmək üçün veb server kimi istifadə olunur. Biz həmçinin Nginx üçün istifadəçilərimizin məlumatlarını qorumağa, məsələn, giriş hüquqlarını ayırmağa imkan verən təhlükəsizlik modulları hazırlamışıq.
Təsəvvür edək ki, istifadəçi müştərimizin veb saytına daxil olur. Əvvəlcə istifadəçi statik məzmuna xidmət edən Nginx-ə daxil olur. Bu dərhal baş verir. Sonra, PHP-nin yüklənməsinə gəldikdə, Nginx sorğunu Apache-yə yönləndirir. Apache isə PHP ilə birlikdə artıq dinamik məzmun yaradır.
Timeweb-də Apache & Nginx paketinin xüsusiyyətləri
Virtual hostinqimiz Apache və Nginx üçün 2 əsas əməliyyat sxemini həyata keçirir: Paylaşılan və Həsr edilmişdir.
Paylaşılan sxem
Bu sxem əksər istifadəçilər üçün istifadə olunur. O, sadəliyi və resurs intensivliyi ilə seçilir: Paylaşılan sxem daha az resurs istifadə edir, buna görə də onun tarifi daha ucuzdur. Bu sxemə görə, server bütün istifadəçi sorğularına və bir neçə Apache nümunəsinə xidmət etməyə imkan verən bir Nginx-i idarə edir.
Paylaşılan sxem uzun müddətdir ki, təkmilləşir: tədricən çatışmazlıqları düzəldirik. Rahat olaraq, mənbə kodunu dəyişdirməyə ehtiyac olmadan edilə bilər.
Paylaşılan sxem
Xüsusi sxem
Dedicated daha çox resurs tələb edir, ona görə də onun tarifi müştərilər üçün daha bahadır. Dedicated sxemdə hər bir müştəri öz ayrıca Apache-ni alır. Buradakı resurslar müştəri üçün qorunur, onlar müstəsna olaraq ayrılır. Necə işləyir: Serverdə PHP-nin bir neçə versiyası var. Biz 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4 versiyalarını dəstəkləyirik. Beləliklə, PHP-nin hər bir versiyası üçün öz Apache işə salınır.
Xüsusi sxem
Təhlükəsiz zona. Nginx-də zonaların qurulması
Əvvəllər Nginx üçün biz çoxlu paylaşılan yaddaş zonalarından (zonalardan) istifadə edirdik - hər domen üçün bir server bloku. Bu quraşdırma çoxlu resurs tələb edir, çünki hər bir sayt üçün ayrıca zona yaradılır. Bununla belə, Nginx parametrlərində əksər saytlar eyni tipdədir, ona görə də modulda xəritə direktivlərinin istifadəsi sayəsində onlar bir zonada yerləşdirilə bilər. ngx_http_map_moduluyazışmaları təyin etməyə imkan verən . Məsələn, dəyişənləri təqdim etməli olduğumuz zona şablonumuz var: sayta gedən yol, PHP versiyası, istifadəçi. Beləliklə, Nginx konfiqurasiyasının yenidən oxunması, yəni yenidən yüklənməsi sürətləndirildi.
Bu konfiqurasiya RAM resurslarını xeyli qənaət etdi və Nginx-i sürətləndirdi.
Yenidən yükləmə işləməyəcək!
Paylaşılan sxemdə veb-sayt parametrlərini dəyişdirərkən Apache-ni yenidən yükləmək ehtiyacından xilas olduq. Əvvəllər bir müştəri domen əlavə etmək və ya PHP versiyasını dəyişmək istəyəndə Apache-nin məcburi yenidən yüklənməsi tələb olunurdu ki, bu da cavabların gecikməsinə və saytın işinə mənfi təsir göstərməsinə səbəb olurdu.
Dinamik konfiqurasiyalar yaratmaqla yenidən yükləmələrdən xilas olduq. sayəsində
Paylaşılan sxem konfiqurasiyası
Bəs Docker?
Bir çox şirkət konteyner əsaslı sistemə keçdi. Timeweb hazırda belə bir keçidin mümkünlüyünü nəzərdən keçirir. Təbii ki, hər bir qərarın müsbət və mənfi tərəfləri var.
Danılmaz üstünlüklərlə yanaşı, konteyner sistemi istifadəçiyə daha az resurs təqdim edir. Timeweb-də təsvir edilən hosting sxemi sayəsində istifadəçinin RAM-da heç bir məhdudiyyəti yoxdur. Konteynerdəkindən daha çox resurs alır. Bundan əlavə, istifadəçi daha çox Apache modulunu yükləyə bilər.
Timeweb təxminən 500 veb-sayta güc verir. Biz böyük məsuliyyət götürürük və mürəkkəb arxitekturada ani, əsassız dəyişikliklər etmirik. Apache və Nginx birləşməsi etibarlı və zamanla sınaqdan keçirilmişdir. Biz də öz növbəmizdə unikal konfiqurasiyalar vasitəsilə maksimum performansa nail olmağa çalışırıq.
Çox sayda saytın yüksək keyfiyyətli və sürətli işləməsi üçün şablon və Apache və Nginx-in dinamik konfiqurasiyasından istifadə etməlisiniz. Bu, çoxlu sayda oxşar serverləri asanlıqla və tez idarə etməyə imkan verir.
Mənbə: www.habr.com