Nginx və Php-Fpm Konfiqurasiyası: Yüksək Performans Üçün

0 Yanıtlar 54 Görüntülenme
·

Puan ver: Nginx və Php-Fpm Konfiqurasiyası: Yüksək Performans Üçün

Bu konuyu zaten puanladınız. Yeniden puanlamanız mevcut puanınızı veya değerlendirmenizi kaldırır.

Puan:

Puanlayanlar: Nginx və Php-Fpm Konfiqurasiyası: Yüksək Performans Üçün

Katılımcılar
Konuyu Açan #0


Veb tətbiqlərinizin sürətlə və stabil işləməsi üçün NginxPHP-FPM tandeminin düzgün konfiqurasiyası kritik əhəmiyyət kəsb edir. Nginx statik faylları effektiv şəkildə təqdim edir və PHP-FPM ilə dinamik məzmunu emal edir. Bu, server resurslarından maksimum istifadə etməyə imkan verir, xüsusilə də yüksək yüklü mühitlərdə.

Nginx Server Blokunun Qurulması


Nginx-in PHP-FPM ilə əlaqə qurması üçün server blokunuzda müvafiq parametrlər təyin edilməlidir. Tipik bir konfiqurasiya aşağıdakı kimi görünə bilər. Bu nümunə, PHP əsaslı tətbiqlər üçün ümumi bir başlanğıc nöqtəsidir:

NGINX
12345678910111213141516171819202122
server {
    listen 80;
    server_name sizin-domeniniz.com; # Domen adınızı qeyd edin
    root /var/www/sizin-saytiniz; # Saytın kök qovluğunu təyin edin
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args; # Əsas URL yönləndirməsi
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # PHP versiyasına uyğun dəyişdirin
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all; # .htaccess fayllarına birbaşa girişi əngəlləyir
    }
}


Burada fastcgi_pass direktivi PHP-FPM-in dinlədiyi unix socket yolunu göstərir. Bu yol PHP-FPM konfiqurasiyasında təyin edilməlidir və əməliyyat sisteminin və PHP versiyasının fərqinə görə dəyişə bilər.



PHP-FPM Pool Konfiqurasiyası və Optimizasiyası


PHP-FPM hər bir domen üçün ayrı-ayrı "pool"lar (hovuzlar) yaradaraq resurs idarəçiliyini asanlaşdırır. Bu hovuzlar adətən
CODE
1/etc/php/8.1/fpm/pool.d/www.conf
(və ya oxşar) faylında təyin olunur. Əsas optimizasiya parametrləri bunlardır:

  1. pm (Process Manager): Proses idarəetmə metodunu müəyyən edir.
    • static: Sabit sayda PHP-FPM prosesi işlədir. Yüksək yüklü serverlər üçün uyğundur, lakin daha çox yaddaş tələb edə bilər.
    • ondemand: Yalnız tələb olunduqda proses yaradır. Daha az yaddaş istifadə edir, lakin ilkin istəklərdə gecikməyə səbəb ola bilər.
    • dynamic: Proseslərin sayını dinamik olaraq idarə edir. Ən çox istifadə olunan və balanslı yanaşmadır.
  2. pm.max_children: Eyni anda işləyə biləcək maksimum PHP-FPM proseslərinin sayı. Bu dəyər serverinizin RAM ölçüsünə və hər bir PHP prosesinin yaddaş istifadəsinə əsasən müəyyən edilməlidir. Həddindən artıq yüksək dəyər serverin yaddaşının bitməsinə səbəb ola bilər.
  3. pm.start_servers: dynamic rejimində PHP-FPM başladığında işə düşən proseslərin sayı.
  4. pm.min_spare_servers: Boşda qalacaq minimum proses sayı. Bu, ani yüklənmələr zamanı cavab vaxtını yaxşılaşdırır.
  5. pm.max_spare_servers: Boşda qalacaq maksimum proses sayı. Həddindən artıq proses yaranmasının qarşısını alır və yaddaş israfının qarşısını alır.
  6. request_terminate_timeout: Bir PHP skriptinin icra edilməsi üçün maksimum vaxt. Uzun sürən skriptlərin serveri bloklamasının qarşısını alır.
Unutmayın ki, bu parametrlərin düzgün tənzimlənməsi serverinizin resurslarından səmərəli istifadə etmək və tətbiqlərinizin cavab vaxtını optimallaşdırmaq üçün açardır. Optimal dəyərlər serverinizin xüsusiyyətlərindən və tətbiqinizin tələblərindən asılı olaraq dəyişə bilər.

Təhlükəsizlik Tövsiyələri


  • usergroup: PHP-FPM proseslərinin işlədiyi istifadəçi və qrup adətən veb server istifadəçisi (www-data kimi) olmalıdır. Bu, fayl icazələri ilə bağlı problemlərin qarşısını alır və təhlükəsizliyi artırır.
  • open_basedir: Hər bir sayt üçün PHP-nin yalnız müəyyən edilmiş qovluqlara daxil olmasına icazə vermək üçün bu direktivi istifadə edin. Məsələn:
    CODE
    1php_admin_value[open_basedir]=/var/www/sizin-saytiniz:/tmp
    Bu, PHP skriptlərinin icazəsiz fayllara daxil olmasının qarşısını alır.



Bu konfiqurasiyaların diqqətlə tətbiqi, veb tətbiqlərinizin performansı və təhlükəsizliyi üçün əhəmiyyətli dərəcədə müsbət təsir göstərəcəkdir. Hər dəyişiklikdən sonra NginxPHP-FPM servislerini yenidən yükləməyi unutmayın ki, dəyişikliklər qüvvəyə minsin.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi