PHP-FPM مخفف (FastCGI Process Manager) معروف ترین اجرای انتخابی PHP FastCGI است. PHP ( مخفف PHP: Hypertext Preprocessor ) یکی از شناخته شده ترین زبان های منبع باز در اینترنت است که برای پیشرفت وب در مراحلی مانند Magento، WordPress یا Drupal استفاده می شود. با وجود این واقعیت که در ابتدا برای پیش پردازش متن ساده در UTF-8 در نظر گرفته شده بود.
fpm یک الگوی پیاده سازی با برخی ویژگی هاست که نقش بسیار محوری در بارگذاری وب سایت ایفا می کند. Fpm در PHP شامل یک ویژگی برای پردازش پیشرفته است که به خوبی هر کاری را آغاز می کند و سپس آن کار را بدون هیچ گونه نفوذی می بندد. این ویژگی دارای قابلیتی اضافه شده برای تطبیق خود با هر محیط کاری شامل پورت ها، الگوهای ثبت، آپلود فایل ها با پشتیبانی از برخی عملکردهای خاص تا تکمیل درخواست ها با پاکسازی داده ها بر اساس فایل های پیکربندی موجود در زمان پیاده سازی است.
PHP fpm چگونه کار می کند؟
PHP fpm الگوی کاری بسیار خوبی دارد که از نظر بارگذاری و جمع آوری داده ها از پایگاه های داده و سایت هایی با ترافیک سنگین و روال شلوغ مفید است.
اجازه دهید از طریق جریان کاری که برای درک آن بسیار مفید است قدم برداریم:
- PHP-fpm همانطور که از نامش پیداست یک مدیر فرآیند FastCGI است که اساساً از یک سیستم مدیریت محتوا برای نگهداری وب سایت ها و بارگذاری یکپارچه صفحات برای بازیابی راحت داده ها استفاده می کند.
- این ویژگی از زبان برنامه نویسی سطح بالا مانند php استفاده می کند که قبل از واکشی توسط وب سرور نیاز به کامپایل کردن اسکریپت ها دارد زیرا در صورتی که زودتر به وب سرور برسد، پردازشگر یا سخت افزار برای درک آن قابل درک نخواهد بود.
- به طور متعارف PHP هرگز از زبان هایی استفاده نمی کند که در زمان کامپایل مستقیماً تغذیه شوند، بلکه ابتدا پردازنده خود را در اختیار می گیرد و سپس هر یک از اسکریپت های PHP را از طریق وب سرورهای یکپارچه مانند CGI (رابط دروازه مشترک)، PHP تک کاربره کامپایل می کند. و DSO (Dynamic Shared Object).
- در زمان اجرای هر یک از اسکریپت های ذکر شده در نظر گرفته می شود و سپس برای پردازش اسکریپت ها و درک سایر وب سرورها به مدیر فرآیند پیوند داده می شود.
- پس از این، سروری که درخواستها را میپذیرد، توسط اسکریپتهای PHP به عنوان بخشی از یک وب سرور مجزا کامپایل و اجرا میشود که ترافیک را به سمت نقطه ترافیک یا جابجایی نقطهای یا تخمینی هدایت میکند.
- فایل های پیکربندی موجود در fpm PHP وظیفه اجرای تمامی فرآیندهای مربوط به وب سرور را بر عهده دارد و سپس برخی از مجوزها و تنظیمات مالکیت را در اختیار سرور قرار می دهد.
- استفاده از fpm و سپس ارائه این روشهای مدیریت منابع و مدیریت محیط به پردازندهها باعث میشود که محیط به آسانی پایدار و قابل دسترسی باشد.
- ارائه پورت، پروکسی، سوئیچ و سایر سخت افزارهای پردازنده در fpm باعث می شود که از نظر ایجاد و دستکاری شبکه با توجه به این سوئیچ ها و پورت ها کاملاً مفید باشد.
- بنابراین، با تمام این توجیهات و اظهارات می توان گفت که در واقع PHP fpm تمام این روش های پردازش از جمله CGI، DSO و mod_php را کاملا قدیمی کرده است و روش پردازش نه چندان توصیه شده، بیشتر به PHP fpm نیاز دارد تا منطقه تمرکز باشد.
- تمام معایب ارائه شده توسط CGI، DSO و PHP تک کاربره به راحتی توسط fpm به روز می شوند، به همین دلیل است که یک روش اجرای توصیه شده است.
- در داخل این PHP fpm سبک متفاوتی از مدیریت فرآیندها دارد؟ سؤال بعدی که به این ترتیب به ذهن خطور می کند می توان گفت که به شیوه ارباب و برده رفتار و کار می کند.
- لایه خدماتی که شامل آن می شود به روشی خاص با حفظ معماری و سلسله مراتب طراحی شده است.
- در مقایسه با حالت master و slave به عنوان یک Master عمل می کند، بنابراین به عنوان یک Master از مجموعه ای از فرآیندهای کارگر فردی دیگر تشکیل می شود.
- به محض اینکه سرور PHP با درخواست بارگیری هر صفحه وب یا تعاملی با وب سرور مواجه شد، در آن صورت ابتدا از پروکسی سرور استفاده می شود و سپس روی لایه سرویس PHP-FPM قرار می گیرد که سایر عملکردها را بر عهده دارد.
- سوکتهای یونیکس با سایر سوئیچها و میزبانها باعث میشوند همه هاستها و پورتهای شبکه به این پورتهای موجود در محیط گوش دهند.
- مسیریابی وب به صورت داخلی، عنصر اصلی برای پر کردن شکاف بین لایه سرویس fpm و سرور است، در غیر این صورت امکان دستیابی به تعامل چندان آسان نیست.
- ترافیک شناور بین سرور و لایه سرویس نیز به قدری زیاد است که با افزایش یا کاهش همزمان ترافیک به اسکریپت های PHP به صورت پویا تغییر می کند.
- واقعیت جالب دیگر این است که اگرچه از مفهوم master و slave پشتیبانی می کند که در آن master مسئولیت رسیدگی به درخواست سرور را بر عهده دارد، سایر کارگران نیز تا حدودی مسئول هستند، اما به گونه ای مسئول هستند که باید با حفظ ترافیک به صورت دوره ای توسط تخم ریزی، ترافیک را مدیریت کنند. یا راه دیگری در نهایت، کارگر یا می گویند برده ها بر این اساس خاتمه می یابند.
- بنابراین، این PHP fpm یک روش کاملاً توصیه شده برای مقابله با وب سرورهای PHP و ترافیک عظیم با صفحات وب است.
مثال ها
- NGINX یکی از بهترین نمونههایی است که از fpm PHP پشتیبانی میکند، زیرا با برقراری اتصال به وبسرور بهمنظور تنظیم زمین سرور پروکسی در لایه سرویس با استفاده از پروتکل مناسب، از محیط به روشی مناسب استفاده میکند. به دنبال تست و پیکربندی و سپس در بالای آن می توان نسخه های ساخت را ایجاد کرد. این به ایجاد پراکسی برای دیگر خوشههای کارگران و پردازندههای متصل به Master که در این مورد NGINX است کمک میکند.
- متعادلکنندههای بار و پراکسیها با خوشههای در دسترس بالا از PHP-fpm به دلیل قابلیت انطباق و انعطافپذیری آن، بدون فکر کردن به صورت مذهبی از آن استفاده میکنند.
ویژگی های PHP fpm
- امنیت
- تطبیق پذیری
- کارایی
- قابل اعتماد
- قابل تنظیم
- ثبات
کاربردهای PHP fpm در زمینه های مختلف
- برنامه های تحت وب برای قطع زمان بارگذاری صفحه وب با حداکثر درصد.
- برنامه ای برای نظارت بر میزبان های مختلف در سطح جهانی با استفاده از PHP-fpm.
به عنوان مثال Dynatrace
- برای ساخت کلاسترهای با دسترسی بالا با استفاده از متعادل کننده بار و سرورهای پراکسی با FastCGI PHP fpm.
- NGINX با fpm-PHP برای مسیریابی ترافیک در زمان پیکربندی وب سرورها.
نتیجه
PHP fpm یک روش جایگزین بسیار خوب با توجه به سرورهای وب است که داده ها را با ترافیک زیادی بارگذاری می کنند. به دلیل انعطاف پذیری و سازگاری به عنوان یک ویژگی، تمام منابع را کاملاً کارآمد مدیریت می کند. بنابراین، می توان نتیجه گرفت که این ویژگی از نظر نقض داده ایمن است.
دیدگاهها