تفاوت‌ها و تکنیک‌های بهینه‌سازی در فایل پیکربندی PHP-FPM /etc/php/8.3/fpm/pool.d/

آیا وقتی سرور در حال اجرا است، همه چیز درست است؟ در واقع، در دنیای PHP-FPM، فایل پیکربندی مغز متفکر واقعی است و تعیین می‌کند که آیا سایت می‌تواند به صورت پایدار، ایمن و کارآمد اجرا شود یا خیر.

پیکربندی استخر فرآیند برای PHP-FPM چیست؟

PHP-FPM (FastCGI Process Manager) یک مدیر فرآیند برای PHP است که از مفهوم "pools" برای مدیریت فرآیندهای PHP برای وب‌سایت‌ها یا برنامه‌های مختلف استفاده می‌کند.

هر .conf این فایل، تعریفی از مجموعه (pool) است که پارامترهای کلیدی مانند کاربری که فرآیند روی آن اجرا می‌شود، پورت یا سوکتی که به آن گوش می‌دهد، مسیر گزارش و تعداد فرآیندها را مشخص می‌کند.

به عبارت دیگر، این فایل‌ها مانند «کلون»هایی برای سرور شما هستند که به سایت‌های مختلف اجازه می‌دهند بدون تداخل با یکدیگر، به طور مستقل اجرا شوند.

تفاوت‌ها و تکنیک‌های بهینه‌سازی در فایل پیکربندی PHP-FPM /etc/php/8.3/fpm/pool.d/

www.conf: مجموعه پردازش پیش‌فرض

پس از نصب PHP-FPM، سیستم به طور خودکار یک ... تولید می‌کند. www.conf فایل.

وظیفه آن ارائه یک استخر پیش‌فرض است که به صورت آماده کار می‌کند و معمولاً در ... اجرا می‌شود. www-data کاربر.

این Pool برای محیط‌های تک‌سایته مناسب است، پیکربندی آن آسان است و بیشتر پارامترها مقادیر عمومی هستند، مانند:

  • user = www-data
  • group = www-data
  • listen = /run/php/php8.3-fpm.sock
  • pm.max_children = 5

اگر فقط روی یک سایت کار می‌کنید، این کافی است.

etبشقاب پرنده ها‎.org.conf: مجموعه سایت‌های سفارشی

وقتی چندین سایت دارید، باید برای هر سایت یک pool جداگانه ایجاد کنید.

به عنوان مثال etufo.org.confمخصوص نام دامنه است. etبشقاب پرنده هاسازمان پیکربندی انحصاری.

رویه رایج این است:

  • برای مثال، کاربران و گروه‌های مختلفی را مشخص کنید user = etufo،group = etufo
  • برای مثال، یک پورت یا سوکت جداگانه برای گوش دادن پیکربندی کنید listen = /run/php/etufo.sock
  • تعداد فرآیندها را تنظیم کنید تا پایداری سایت تحت همزمانی بالا تضمین شود.
  • فایل‌های لاگ مستقل، عیب‌یابی را تسهیل می‌کنند.

مزیت این رویکرد، ایزوله‌سازی امنیتی است: حتی اگر به یک سایت حمله شود، سایت‌های دیگر تحت تأثیر قرار نمی‌گیرند.

dummy.conf: فایل نمونه یا فایل جایگزین

dummy.conf اینها معمولاً قالب‌ها یا نمونه‌هایی هستند که توسط سیستم ارائه می‌شوند.

در واقع فعال نخواهد شد مگر اینکه آن را به صورت دستی تغییر داده و فعال کنید.

هدف آن ارائه یک مرجع و نشان دادن نحوه نوشتن پیکربندی یک استخر جدید است.

بنابراین، بیشتر شبیه یک «دفترچه راهنما» است تا یک پیکربندی واقعی برای عملیات.

چرا از چندین فایل pool استفاده کنیم؟

  • 安全 性سایت‌های مختلف باید توسط کاربران مختلف اداره شوند تا از تداخل مجوزها جلوگیری شود.
  • 性能优化تعداد فرآیندها را می‌توان به صورت جداگانه برای هر Pool تنظیم کرد و با توجه به تقاضای ترافیک تنظیم نمود.
  • انزواگزارش‌ها، خروجی خطا و پورت‌های در حال گوش دادن، همگی از هم جدا شده‌اند و عیب‌یابی را آسان‌تر می‌کنند.

برای مثال، اگر www.conf فرو ریخت.etufo.org.conf هنوز هم می‌تواند به طور عادی اجرا شود و کل سرور را از کار نمی‌اندازد.

سناریوهای کاربردی عملی

  • سرور تک سایتهفقط استفاده کنید www.conf همین کافی است.
  • سرور چند سایتی: برای هر سایت یکی بسازید .conf فایل‌هایی مانند etufo.org.conf.
  • فایل پیکربندی.confفقط جهت اطلاع، توصیه نمی‌شود.

مثال مقایسه پیکربندی

www.conf (مخزن پیش‌فرض)

[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5

etufo.org.conf (استخر سفارشی)

[etufo.org]
user = etufo
group = etufo
listen = /run/php/etufo.sock
pm = dynamic
pm.max_children = 20
access.log = /var/log/php-fpm/etufo.access.log

متوجه خواهید شد که تفاوت در کاربر، آدرس شنونده و تعداد فرآیندها نهفته است.

تنظیم پارامترهای استخر فرآیند PHP-FPM

اگر پیکربندی از dynamic استفاده کند ، این روشی برای پیش‌آغاز برخی از فرآیندهای کاری و تنظیم پویا بر اساس حجم درخواست است که امکان پاسخ سریع‌تر را در هنگام افزایش حجم درخواست فراهم می‌کند.

برای وب‌سایت‌هایی با میزان مشخصی از ترافیک، استفاده از آن توصیه می‌شود pm = dynamicزیرا می‌تواند مقدار مشخصی از فرآیندهای بیکار را حفظ کند و از ۵۰۰ خطا در حین همزمانی بالا جلوگیری کند.

توصیه می‌شود فقط زمانی از آن استفاده کنید که حجم دسترسی بسیار کم و منابع حافظه محدود باشد. pm = ondemand برای صرفه‌جویی در منابع.

توصیه می‌شود آن را به حالت پویا تغییر دهید و بهینه کنید. pm.max_children و پارامترهای دیگر:

pm = dynamic
pm.max_children = 16  ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4   ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2  ; 最小空闲进程数
pm.max_spare_servers = 7  ; 最大空闲进程数
pm.max_requests = 3000    ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s  ; 空闲进程 10s 后自动退出

این پیکربندی ضمن جلوگیری از اتلاف منابع، عملکرد را تضمین می‌کند.

برای دستورالعمل‌های پیکربندی دقیق، لطفاً به آموزش زیر مراجعه کنید ▼

طبق مستندات رسمی PHP:

«هر Pool می‌تواند به طور مستقل پیکربندی شود و امکان استفاده از کاربران، محدودیت‌ها و تنظیمات مختلف برای هر برنامه را فراهم کند.»

این جمله به وضوح اهمیت پیکربندی چند استخری را نشان می‌دهد: استقلال، انعطاف‌پذیری و قابلیت کنترل.

نتیجه‌گیری: دیدگاه من

پیکربندی سرور مانند یک رهبر ارکستر است که نحوه نواختن هر ساز را تعیین می‌کند.

www.conf این رهبر ارکستر پیش‌فرض است و برای اجراهای تک‌نفره مناسب است؛etufo.org.conf این یک هادی است که برای یک صحنه خاص سفارشی ساخته شده است؛ و dummy.conf این یک پیش‌نویس از نت‌های موسیقی است که به شما یادآوری می‌کند چگونه ملودی‌های جدید بنویسید.

در عصری که بر امنیت اطلاعات و بهینه‌سازی عملکرد تمرکز شده است، دانستن نحوه‌ی صحیح استفاده از این فایل‌های پیکربندی، کلید کنترل حیات یک سرور است.

پیکربندی فقط یک متن بی‌اهمیت نیست؛ بلکه روح یک سرور است.

اگر چندین سایت وردپرس را اداره می‌کنید ، اکیداً توصیه می‌شود که فوراً این فایل‌های pool، به ویژه تنظیمات پارامترهای process pool، را بررسی و بهینه‌سازی کنید تا سرور شما واقعاً پایدار شود.

امیدوارم مقاله «تفاوت‌ها و تکنیک‌های بهینه‌سازی فایل پیکربندی PHP-FPM /etc/php/8.3/fpm/pool.d/» که در وبلاگ چن ویلیانگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده است، برای شما مفید باشد.

لینک این مقاله را به اشتراک بگذارید: https://www.chenweiliang.com/cwl-33845.html

برای کشف ترفندهای مخفی بیشتر🔑، به کانال تلگرام ما بپیوندید!

اگر دوست داشتید به اشتراک بگذارید و لایک کنید! اشتراک گذاری ها و لایک های شما انگیزه ادامه دار ماست!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

رفته به بالا