Middle
PHP-FPM эмне?
sobes.tech AI
AIден жооп
PHP-FPM (FastCGI Process Manager) — бул PHP үчүн FastCGI процесстерин башкаруучу, стандарттуу PHP FastCGIге альтернатива. Ал жогорку жүктөмдүү чөйрөлөрдө веб-суроо-талаптарды иштетүүнүн натыйжалуулугун жогорулатат. FPM PHP процесстеринин пулун башкарат, алар веб-серверден (мисалы, Nginx же Apache аркылуу mod_proxy_fcgi модулун колдонуу менен) келген кирүү суроолорун күтүп турушат.
Негизги өзгөчөлүктөрү жана артыкчылыктары:
- Процесс пулу: FPM PHP процесстеринин топтомун түзөт жана башкарат. Бул процесстер статикалык (такыр санын белгилөө), динамикалык (керектүү болгондо белгиленген чектерде түзүлөт) же on-demand (суроо-талап келип түшкөндө түзүлөт жана иштетилгенден кийин жок кылынат) болушу мүмкүн. Бул системдик ресурстарды эффективдүү пайдаланууга мүмкүндүк берет.
- Жакшы масштабдоо: Процесс пулун башкаруу аркылуу FPM көптөгөн бир мезгилде келип түшкөн суроолорду иштетип, жогорку жүктөмдүү колдонмолор үчүн маанилүү.
- Процесстерди бөлүү: Ар бир суроо өзүнчө FPM процесси тарабынан иштетилет, бул туруктуулукту жогорулатат. Бир суроонун иштебей калышы башка суроолорго таасир этпейт.
- Конфигурация: Процесстердин жүрүм-турумун ийкемдүү жөндөөгө мүмкүндүк берет, мисалы, процесстеги максималдуу суроо саны, процесстин жашоо убактысы, эс тутумду башкаруу.
- Веб-серверлер менен интеграция: FastCGI протоколу аркылуу популярдуу веб-серверлер менен оңой интеграцияланат.
php-fpm.d/www.conf файлына мисал конфигурация:
; Пулдун аты
[www]
; Процессдерди иштетүүчү колдонуучу жана топ
user = www-data
group = www-data
; TCP сокет аркылуу угуу:
; listen = 127.0.0.1:9000
; же Unix сокет аркылуу:
listen = /run/php/php7.4-fpm.sock
; Процесс башкаруу ыкмасы:
; static - так сандагы процесстер (`pm.max_children`)
; dynamic - динамик процесстердин саны (`pm.start_servers`, `pm.min_servers`, `pm.max_servers`)
; ondemand - суроо-талап боюнча түзүлөт (`pm.process_idle_timeout`, `pm.max_children`)
pm = dynamic
; Баштапкы процесстердин саны dynamic режиминде ишке киргизүүдө
pm.start_servers = 5
; Ар дайым иштей турган процесстердин минималдуу саны
pm.min_servers = 2
; Максималдуу процесстердин саны dynamic жана static/ondemand режимдеринде
pm.max_children = 15
FPM жок болсо, веб-сервер ар бир PHP суроо-талап үчүн PHP интерпретаторун иштетүүгө мажбур болмок, бул өтө натыйжасыз болмок. FPM бул көйгөйдү чечет, даяр иштей турган процесстерди кармап турат.