ماژول های پردازش موازی در وب سرور آپاچی

ماژول های پردازش موازی در وب سرور آپاچی

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

یک مجموعه از ماژول های مهم و کلیدی در وب سرور آپاچی، ماژول های پردازش موازی یا Multi-Processing Moduleها هستند که به اختصار MPM نامیده می شوند. این ماژول ها مسئول اتصال به پورت های شبکه، دریافت کانکشن ها و ریکوئست های رسیده و اجرای پردازه های مختلف برای پردازش آنها هستند. در واقع این ماژول ها این وظیفه را از طریق رویکردهای مختلف در بحث پردازش موازی، به شکل همزمان برای ریکوئست های رسیده در یک زمان، انجام می دهند و از این طریق وب سرور را برای پاسخگویی به ریکوئست های همزمانِ دریافت شده، مجهز می کنند. از این طریق وب سرور آپاچی این امکان را دارد تا به شکل همزمان چندین ریکوئست ارسالی را مدیریت کرده و به آنها پاسخ دهد. تا با استفاده از این امکان، سایت های پر ترافیک مشکلی برای پاسخگویی مناسب به کاربران خود در هنگام لود بالا نداشته باشند. البته انتخاب صحیح از بین ماژول های پردازش موازی مختلفِ فراهم شده در وب سرور آپاچی، در کنار کانفیگ مناسب هر کدام، نقش مهمی در آماده کردن وب سرور برای پاسخگویی مناسب در تمامی شرایط ترافیکی سایت دارد.

این بخش از محتوا مخصوص کاربرانی است که ثبت‌نام کرده‌اند.
جهت مشاهدهٔ این بخش از محتوا لاگین نمایید.

از آنجایی که علت استفاده از ماژول های پردازش موازی، بالا بردن توان پاسخگویی به ریکوئست های همزمان در سایت هایی با ترافیک بالا و در عین حال کاهش استفاده از منابع سخت افزاری سیستم است، یک راه جایگزین مناسب، استفاده از fastCGI به عنوان Server API یا همان رابط بین آپاچی و PHP است. PHP-FPM یا همان FastCGI Process Manager که توسط PHP ارائه شده است، یک SAPI یا Server API مبتنی بر پروتکل fastCGI است که در آن زمان اجرا و پردازش به شدت کاهش پیدا کرده و به نسبت پروتکل CGI سرعت و مزایای متعددی دارد. ویژگی مطلوب دیگر PHP-FPM در آن است که با استفاده از آن اسکریپت های PHP در فضای حافظه ی مخصوص به خود اجرا شده و مشکلی با ماژول های مبتنی بر پردازش چند رشته ای آپاچی نیز ندارند (بر خلاف mod_php که در آن PHP به عنوان بخشی از پردازه آپاچی اجرا می شود و نه در پردازه مخصوص به خود)؛ اگرچه کماکان توصیه بر استفاده از ماژول prefork است. اما در این منبع نحوه نصب آپاچی به همراه PHP-FPM بر روی سرور دبیان 10 آموزش داده شده است.

منابع

 http://httpd.apache.org/docs/2.4/mpm.html
 http://httpd.apache.org/docs/2.4/mod/prefork.html
 http://httpd.apache.org/docs/2.4/mod/worker.html
 http://httpd.apache.org/docs/2.4/mod/event.html
 https://www.php.net/manual/en/install.unix.apache2.php
 https://www.php.net/manual/en/faq.installation.php#faq.installation.apache2
 https://www.php.net/manual/en/install.fpm.php
https://tecadmin.net/install-apache-php-fpm-debian-10
 https://help.superhosting.bg/en/cgi-common-gateway-interface-fastcgi.html
 https://www.quora.com/Why-do-we-use-PHP-FPM
 https://askubuntu.com/questions/524770/apache-enable-worker-mpm
 https://www.geeksforgeeks.org/what-is-thread-safe-or-non-thread-safe-in-php/
 https://www.programmerinterview.com/operating-systems/thread-vs-process/
 https://stackoverflow.com/questions/200469/what-is-the-difference-between-a-process-and-a-thread
 https://blog.programster.org/ubuntu16-04-compile-php-7-2-with-pthreads
 https://stackoverflow.com/questions/34969325/how-to-install-php7-zts-pthreads-on-ubuntu-14-04
https://www.quora.com/What-is-the-meaning-of-TS-and-NTS-in-PHP