Optimizare Nginx și PHP-FPM

Optimizare Nginx și PHP-FPM

nginx

– î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 = yes

php_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 = yes

php_admin_value[memory_limit] = 128M

 

 

Ultimele Știri:

 

 

 

 

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Zi cu cuvintele tale...