آپاچی و نگینکس توسط یک زنجیر به هم وصل شده است

چگونه ترکیب Apache & Nginx در Timeweb پیاده سازی می شود

برای بسیاری از شرکت ها، Nginx + Apache + PHP یک ترکیب بسیار معمولی و رایج است و Timeweb نیز از این قاعده مستثنی نیست. با این حال، درک دقیق نحوه اجرای آن می تواند جالب و مفید باشد.

آپاچی و نگینکس توسط یک زنجیر به هم وصل شده است

استفاده از چنین ترکیبی البته به نیاز مشتریان ما دیکته می شود. هم Nginx و هم Apache نقش ویژه ای دارند که هر کدام مشکل خاصی را حل می کنند.

تنظیمات پایه آپاچی در فایل های پیکربندی خود آپاچی انجام می شود و تنظیمات برای سایت های مشتری از طریق آن انجام می شود فایل htaccess. htaccess یک فایل پیکربندی است که در آن مشتری می تواند به طور مستقل قوانین و رفتار وب سرور را پیکربندی کند. این تنظیم به طور خاص برای سایت او اعمال می شود. به عنوان مثال، به لطف عملکرد آپاچی، کاربران می توانند حالت عملکرد را در همان نسخه PHP از mod_php به mod_cgi تغییر دهند. شما می توانید تغییر مسیرها، بهینه سازی برای سئو، URL مناسب، برخی محدودیت ها برای PHP را تنظیم کنید.

Nginx به عنوان یک سرور پروکسی برای هدایت ترافیک به آپاچی و به عنوان یک وب سرور برای ارائه محتوای ثابت استفاده می شود. ما همچنین ماژول‌های امنیتی را برای Nginx توسعه داده‌ایم که به ما امکان می‌دهد از داده‌های کاربرانمان محافظت کنیم، برای مثال، حقوق دسترسی را جدا کنیم.

بیایید تصور کنیم که یک کاربر از وب سایت مشتری ما بازدید می کند. ابتدا کاربر به Nginx می رسد که محتوای ثابت را ارائه می دهد. آنی اتفاق می افتد. سپس، وقتی نوبت به بارگذاری PHP می‌رسد، Nginx درخواست را به آپاچی ارسال می‌کند. و آپاچی، همراه با PHP، در حال حاضر محتوای پویا تولید می کند.

ویژگی های بسته نرم افزاری Apache & Nginx در Timeweb

میزبانی مجازی ما 2 طرح عملیاتی اصلی را برای Apache & Nginx پیاده سازی می کند: به اشتراک گذاشته شده و اختصاصی.

طرح مشترک

این طرح برای اکثر کاربران استفاده می شود. آن را با سادگی و شدت منابع متمایز می کند: طرح اشتراکی از منابع کمتری استفاده می کند، به همین دلیل تعرفه آن ارزان تر است. طبق این طرح، سرور یک Nginx را اجرا می کند که به آن اجازه می دهد تا تمام درخواست های کاربر و چندین نمونه از آپاچی را ارائه دهد.

طرح مشترک برای مدت طولانی در حال بهبود بوده است: به تدریج کاستی ها را اصلاح کردیم. به راحتی می توان بدون نیاز به تغییر کد منبع این کار را انجام داد.

آپاچی و نگینکس توسط یک زنجیر به هم وصل شده است
طرح مشترک

طرح اختصاصی

اختصاصی به منابع بیشتری نیاز دارد، بنابراین تعرفه آن برای مشتریان گران تر است. در طرح اختصاصی، هر کلاینت آپاچی جداگانه خود را دریافت می کند. منابع در اینجا برای مشتری محفوظ است، آنها به طور انحصاری اختصاص داده می شوند. چگونه کار می کند: چندین نسخه از PHP بر روی سرور وجود دارد. ما از نسخه های 5.3، 5.4، 5.6، 7.1، 7.2، 7.3، 7.4 پشتیبانی می کنیم. بنابراین، برای هر نسخه از PHP، آپاچی خودش راه اندازی می شود.

آپاچی و نگینکس توسط یک زنجیر به هم وصل شده است
طرح اختصاصی

منطقه ی امن. راه اندازی مناطق در Nginx

پیش از این، برای Nginx، از بسیاری از مناطق حافظه مشترک (منطقه‌ها) استفاده می‌کردیم - یک بلوک سرور در هر دامنه. این راه اندازی به منابع زیادی نیاز دارد، زیرا برای هر سایت یک منطقه جداگانه ایجاد می شود. با این حال، در تنظیمات Nginx، اکثر سایت ها از یک نوع هستند، بنابراین به لطف استفاده از دستورالعمل های نقشه در ماژول، می توان آنها را در یک منطقه قرار داد. ngx_http_map_module، که به شما امکان می دهد مکاتبات را مشخص کنید. به عنوان مثال، ما یک قالب منطقه داریم که در آن باید متغیرهایی را عرضه کنیم: مسیر به سایت، نسخه PHP، کاربر. بنابراین، خواندن مجدد پیکربندی Nginx، یعنی بارگذاری مجدد، تسریع شد.

این پیکربندی منابع RAM را تا حد زیادی ذخیره کرد و سرعت Nginx را افزایش داد.

بارگذاری مجدد کار نخواهد کرد!

در طرح اشتراکی، ما از نیاز به بارگذاری مجدد آپاچی هنگام تغییر تنظیمات وب سایت خلاص شدیم. پیش از این، هنگامی که یک مشتری می خواست دامنه ای اضافه کند یا نسخه PHP را تغییر دهد، بارگذاری مجدد اجباری آپاچی مورد نیاز بود که منجر به تاخیر در پاسخ ها و تأثیر منفی بر عملکرد سایت می شد.

ما با ایجاد تنظیمات پویا از بارگذاری مجدد خلاص شدیم. با تشکر از mpm-itk (ماژول آپاچی)، هر فرآیند به عنوان یک کاربر جداگانه اجرا می شود که باعث افزایش سطح امنیت می شود. این روش به شما اجازه می دهد تا داده های مربوط به کاربر و document_root او را از Nginx به Apache2 منتقل کنید. بنابراین، آپاچی شامل تنظیمات سایت نیست، آنها را به صورت پویا دریافت می کند و دیگر نیازی به بارگذاری مجدد نیست.

آپاچی و نگینکس توسط یک زنجیر به هم وصل شده است
پیکربندی طرحواره مشترک

در مورد داکر چطور؟

بسیاری از شرکت ها به سیستم مبتنی بر کانتینر نقل مکان کرده اند. تایم وب در حال حاضر در حال بررسی امکان چنین انتقالی است. البته هر تصمیمی دارای مزایا و معایبی است.

در کنار مزایای غیرقابل انکار، سیستم کانتینر منابع کمتری را در اختیار کاربر قرار می دهد. در Timeweb، به لطف طرح میزبانی توصیف شده، کاربر هیچ محدودیتی در RAM ندارد. منابع بیشتری نسبت به کانتینر دریافت می کند. علاوه بر این، کاربر ممکن است ماژول های آپاچی بیشتری بارگذاری شده باشد.

تایم وب حدود 500 وب سایت را تامین می کند. ما مسئولیت بزرگی را بر عهده می گیریم و تغییرات فوری و غیرقابل توجیهی در معماری پیچیده ایجاد نمی کنیم. ترکیب Apache & Nginx قابل اعتماد و با زمان تست شده است. ما نیز به نوبه خود سعی می کنیم از طریق تنظیمات منحصر به فرد به حداکثر عملکرد دست یابیم.

برای عملکرد باکیفیت و سریع تعداد زیادی سایت، باید از قالب و پیکربندی پویا Apache و Nginx استفاده کنید. این امکان را به شما می دهد تا به راحتی و به سرعت تعداد زیادی از سرورهای مشابه را مدیریت کنید.

منبع: www.habr.com

اضافه کردن نظر