Apache & Nginx. Звязаныя адным ланцугом (2 частка)

На мінулым тыдні ў першай частцы гэтага артыкула мы апісалі, як пабудавана звязак Apache і Nginx у Timeweb. Мы вельмі ўдзячны чытачам за пытанні і актыўнае абмеркаванне! Сёння расказваем, як рэалізавана даступнасць некалькіх версій PHP на адным серверы і чаму мы гарантуем бяспеку даных нашым кліентам.

Apache & Nginx. Звязаныя адным ланцугом (2 частка)
віртуальны хостынг (Shared-хостынг) мяркуе, што на адным серверы размешчана мноства акаўнтаў кліентаў. На акаўнце аднаго кліента, як правіла, знаходзіцца некалькі сайтаў. Сайты працуюць як на гатовых CMS (напрыклад, Bitrix), так і на кастамных. Такім чынам, тэхнічныя патрабаванні ва ўсіх сістэм розныя, таму ў рамках аднаго сервера неабходна кіраваць некалькімі версіямі PHP.

У якасці асноўнага вэб-сервера мы выкарыстоўваем Nginx: ён прымае ўсе падлучэнні звонку і аддае статычны кантэнт. Астатнія запыты мы праксуем далей, на вэб-сервер Apache. Тут і пачынаецца магія: для кожнай версіі PHP запушчаны асобны асобнік Apache, які слухае вызначаны порт. Гэты порт прапісваецца ў віртуальным хасце кліенцкага сайта.

Аб працы Shared-схемы можна прачытаць больш падрабязна ў першай частцы артыкула.

Apache & Nginx. Звязаныя адным ланцугом (2 частка)
Shared-схема

Важна адзначыць, што мы ставім пакеты PHP пад розныя версіі, бо звычайна ва ўсіх дыстрыбутывах ляжыць толькі адна версія PHP.

Бяспека перш за ўсё!

Адна з галоўных задач віртуальнага хостынгу - забяспечыць бяспеку дадзеных кліента. Розныя акаўнты, знаходзячыся на адным серверы, самастойныя і незалежныя. Як гэта працуе?

Файлы сайтаў захоўваюцца ў хатніх каталогах саміх карыстачоў, а ў віртуальным хасце вэб-сервераў паказваюцца патрэбныя шляхі. Пры гэтым важна, каб вэб-серверы, Nginx і Аpache, атрымалі доступ да канчатковых файлаў вызначанага кліента, бо вэб-сервер запускаецца толькі ад аднаго карыстача.

Для Nginx выкарыстоўваецца патч бяспекі, распрацаваны камандай Timeweb: гэты патч змяняе карыстача на таго, які паказаны ў канфігурацыйным файле вэб-сервера.

У іншых хостынг-правайдэраў гэтая праблема можа быць вырашана, напрыклад, праз маніпуляцыі з пашыранымі правамі файлавай сістэмы (ACL).

Для працы Apache выкарыстоўваецца модуль мультыпрацэсінгу mpm-itk. Ён дазваляе запускаць кожны VirtualHost з уласным ідэнтыфікатарам карыстальніка і ID групы.
Apache & Nginx. Звязаныя адным ланцугом (2 частка)
Такім чынам, дзякуючы аперацыям, апісаным вышэй, мы атрымліваем бяспечнае ізаляванае асяроддзе для кожнага кліента. Пры гэтым мы таксама вырашаем задачы маштабавання для Shared-хостынгу.

Як рэалізаваная звязак Apache і Nginx, можна прачытаць у першай частцы нашага артыкула. Акрамя таго, тамака жа апісаная альтэрнатыўная канфігурацыя праз Dedicated-схему.

Калі ў вас засталіся пытанні да нашых экспертаў, пішыце ў каментарах. Паспрабуем на ўсё адказаць ці апісаць рашэнне задачы больш падрабязна ў наступных артыкулах.

Крыніца: habr.com

Дадаць каментар