Optimizare Nginx și PHP-FPM
Optimizare Nginx și PHP-FPM
– începem ordonat cu back-up:
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.`date +%F.%T` cp /etc/nginx/sites-available/ispconfig.vhost /etc/nginx/sites-available/ispconfig.vhost.`date +%F.%T` cp /etc/php5/fpm/php-fpm.conf /etc/php5/fpm/php-fpm.conf.`date +%F.%T` cp /etc/php5/fpm/pool.d/ispconfig.conf /etc/php5/fpm/pool.d/ispconfig.conf.`date +%F.%T` cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/www.conf.`date +%F.%T`
– modificăm /etc/nginx/nginx.conf:
vi /etc/nginx/nginx.conf
– se vor pune câte core-uri aveți la procesor, dacă nu știți: se află cu: cat /proc/cpuinfo |grep processor
worker_processes 1; worker_connections 1024;
– dacă tot suntem aici și putină securitate nu strică, dezactivăm să-și spună versiunea pe pagini, și pentru asta decomentăm linia:
server_tokens off;
– alegem mărimea default pentru upload în caz că avem eroare: “Request Entity Too Large” (413) :
vi /etc/nginx/sites-available/ispconfig.vhost
client_max_body_size 20m; client_body_buffer_size 128k;
– avem grijă și de cache:
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; }
– Acum ne ocupăm de PHP-FPM:
vi /etc/php5/fpm/php-fpm.conf
emergency_restart_threshold 10 emergency_restart_interval 1m process_control_timeout 10s
– asta înseamnă că dacă 10 procese PHP-FPM se opresc cu SIGSEGV sau SIGBUS se restartează PHP-FPM într-un minut. Și îi lasă și 10 secunde timp să răspundă.
– punem în ambele același lucru:
vi /etc/php5/fpm/pool.d/ispconfig.conf vi /etc/php5/fpm/pool.d/www.conf
pm.max_children = 9 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 200
– dăm restart la tot:
/etc/init.d/nginx restart /etc/init.d/php5-fpm restart
Câteva exemple de configurare PHP-FPM
Pentru un blog:
vi /etc/php5/fpm/pool.d/site-blog.conf
[blog] listen = 127.0.0.1:9001 user = blog group = blog listen.allowed_clients = 127.0.0.1 pm = dynamic pm.max_children = 4 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 pm.max_requests = 200 listen.backlog = -1 pm.status_path = /status request_terminate_timeout = 120s rlimit_files = 131072 rlimit_core = unlimited catch_workers_output = yesphp_admin_value[memory_limit] = 128M
Pentru un forum:
vi /etc/php5/fpm/pool.d/site-forum.conf
[forums] listen = 127.0.0.1:9002 user = forums group = forums listen.allowed_clients = 127.0.0.1 pm = dynamic pm.max_children = 10 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 400 listen.backlog = -1 pm.status_path = /status request_terminate_timeout = 120s rlimit_files = 131072 rlimit_core = unlimited catch_workers_output = yesphp_admin_value[memory_limit] = 128M
Ultimele Știri:
Leave a Reply
Want to join the discussion?Feel free to contribute!