Apache at Nginx. Ikinonekta ng isang kadena

Paano ipinapatupad ang kumbinasyon ng Apache at Nginx sa Timeweb

Para sa maraming kumpanya, ang Nginx + Apache + PHP ay isang napaka tipikal at karaniwang kumbinasyon, at ang Timeweb ay walang pagbubukod. Gayunpaman, ang pag-unawa nang eksakto kung paano ito ipinatupad ay maaaring maging kawili-wili at kapaki-pakinabang.

Apache at Nginx. Ikinonekta ng isang kadena

Ang paggamit ng naturang kumbinasyon, siyempre, ay idinidikta ng mga pangangailangan ng aming mga kliyente. Ang Nginx at Apache ay gumaganap ng isang espesyal na papel, ang bawat isa ay nilulutas ang isang partikular na problema.

pangunahing setting Apache ay ginagawa sa mga configuration file ng Apache mismo, at ang mga setting para sa mga site ng kliyente ay nagaganap sa pamamagitan ng .htaccess file. Ang .htaccess ay isang configuration file kung saan ang kliyente ay maaaring malayang i-configure ang mga panuntunan at gawi ng web server. Partikular na ilalapat ang setting na ito sa kanyang site. Halimbawa, salamat sa paggana ng Apache, maaaring baguhin ng mga user ang operating mode sa loob ng parehong bersyon ng PHP mula mod_php hanggang mod_cgi; maaari kang mag-set up ng mga pag-redirect, pag-optimize para sa SEO, maginhawang URL, ilang mga limitasyon para sa PHP.

Nginx ginamit bilang isang proxy server upang i-redirect ang trapiko sa Apache at bilang isang web server upang maghatid ng static na nilalaman. Bumuo din kami ng mga module ng seguridad para sa Nginx na nagbibigay-daan sa amin na protektahan ang data ng aming mga user, halimbawa, upang paghiwalayin ang mga karapatan sa pag-access.

Isipin natin na ang isang user ay bumisita sa website ng aming kliyente. Una, napupunta ang user sa Nginx, na naghahain ng static na nilalaman. Ito ay nangyayari kaagad. Pagkatapos, pagdating sa paglo-load ng PHP, ipinapasa ng Nginx ang kahilingan sa Apache. At ang Apache, kasama ang PHP, ay bumubuo na ng dynamic na nilalaman.

Mga tampok ng bundle ng Apache at Nginx sa Timeweb

Ang aming virtual hosting ay nagpapatupad ng 2 pangunahing operating scheme para sa Apache at Nginx: Ibinahagi at Dedicated.

Nakabahaging scheme

Ginagamit ang scheme na ito para sa karamihan ng mga user. Ito ay nakikilala sa pamamagitan ng pagiging simple at intensity ng mapagkukunan: ang Shared scheme ay gumagamit ng mas kaunting mga mapagkukunan, kung kaya't ang taripa nito ay mas mura. Ayon sa scheme na ito, ang server ay nagpapatakbo ng isang Nginx, na nagbibigay-daan dito upang maihatid ang lahat ng mga kahilingan ng user, at ilang mga pagkakataon ng Apache.

Matagal nang umuunlad ang Shared scheme: unti-unti naming naitama ang mga pagkukulang. Maginhawa, maaari itong gawin nang hindi kailangang baguhin ang source code.

Apache at Nginx. Ikinonekta ng isang kadena
Nakabahaging scheme

Nakatuon na pamamaraan

Ang dedicated ay nangangailangan ng mas maraming mapagkukunan, kaya ang taripa nito ay mas mahal para sa mga customer. Sa Dedicated scheme, ang bawat kliyente ay nakakakuha ng sarili nitong hiwalay na Apache. Ang mga mapagkukunan dito ay nakalaan para sa kliyente, sila ay inilalaan ng eksklusibo. Paano ito gumagana: Mayroong ilang mga bersyon ng PHP sa server. Sinusuportahan namin ang mga bersyon 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Kaya, para sa bawat bersyon ng PHP ang sarili nitong Apache ay inilunsad.

Apache at Nginx. Ikinonekta ng isang kadena
Nakatuon na pamamaraan

Ligtas na sona. Pag-set up ng mga zone sa Nginx

Dati, para sa Nginx, gumamit kami ng maraming shared memory zone (zones) - isang server block bawat domain. Ang setup na ito ay nangangailangan ng maraming mapagkukunan, dahil ang isang hiwalay na zone ay nilikha para sa bawat site. Gayunpaman, sa mga setting ng Nginx, karamihan sa mga site ay pareho ang uri, kaya maaari silang mailagay sa isang zone salamat sa paggamit ng mga direktiba ng mapa sa module ngx_http_map_module, na nagpapahintulot sa iyo na tukuyin ang mga sulat. Halimbawa, mayroon kaming template ng zone kung saan dapat kaming magbigay ng mga variable: path sa site, bersyon ng PHP, user. Kaya, ang muling pagbabasa ng configuration ng Nginx, iyon ay, ang pag-reload, ay pinabilis.

Ang pagsasaayos na ito ay lubos na na-save ang mga mapagkukunan ng RAM at pinabilis ang Nginx.

Hindi gagana ang pag-reload!

Sa Shared scheme, inalis namin ang pangangailangang i-reload ang Apache kapag binabago ang mga setting ng website. Dati, kapag gusto ng isang kliyente na magdagdag ng domain o baguhin ang bersyon ng PHP, kinakailangan ang mandatoryong pag-reload ng Apache, na humantong sa mga pagkaantala sa mga tugon at negatibong naapektuhan ang pagganap ng site.

Inalis namin ang mga reload sa pamamagitan ng paggawa ng mga dynamic na configuration. Salamat kay mpm-itk (Apache module), ang bawat proseso ay tumatakbo bilang isang hiwalay na user, na nagpapataas ng antas ng seguridad. Binibigyang-daan ka ng paraang ito na maglipat ng data tungkol sa user at sa kanyang document_root mula sa Nginx patungo sa Apache2. Kaya, hindi naglalaman ang Apache ng mga configuration ng site, tinatanggap nito ang mga ito nang pabago-bago, at hindi na kailangan ang mga reload.

Apache at Nginx. Ikinonekta ng isang kadena
Nakabahaging configuration ng schema

Paano ang tungkol kay Docker?

Maraming kumpanya ang lumipat sa isang container-based system. Kasalukuyang isinasaalang-alang ng Timeweb ang posibilidad ng naturang paglipat. Siyempre, may mga kalamangan at kahinaan sa bawat desisyon.

Kasama ng hindi maikakaila na mga pakinabang, ang container system ay nagbibigay sa user ng mas kaunting mapagkukunan. Sa Timeweb, salamat sa inilarawang hosting scheme, ang user ay walang limitasyon sa RAM. Mas maraming mapagkukunan ang natatanggap nito kaysa sa lalagyan. Bilang karagdagan, ang user ay maaaring magkaroon ng mas maraming Apache module na na-load.

Pinapatakbo ng Timeweb ang tungkol sa 500 mga website. Malaki ang responsibilidad namin at hindi gumagawa ng mga instant, hindi makatwirang pagbabago sa kumplikadong arkitektura. Ang kumbinasyon ng Apache at Nginx ay maaasahan at nasubok sa oras. Kami naman, ay nagsisikap na makamit ang pinakamataas na pagganap sa pamamagitan ng mga natatanging pagsasaayos.

Para sa mataas na kalidad at mabilis na operasyon ng isang malaking bilang ng mga site, kailangan mong gumamit ng template at dynamic na configuration ng Apache at Nginx. Pinapayagan ka nitong madali at mabilis na mangasiwa ng malaking bilang ng mga katulad na server.

Pinagmulan: www.habr.com

Magdagdag ng komento