Ottimizzazione WordPress utilizzando FastCGI
Prepariamoci a completare l’ottimizzazione. Questa volta installeremo FastCGI, il middleware di caching delle pagine sviluppato da Nginx.
Installazione/Installazione di Nginx FastCGI
Per utilizzare questa funzione, è necessario abilitare i permalink in WordPress. Vai al Pannello di controllo, fai clic su “Impostazioni” e poi su “Permalink”. Consiglio di utilizzare lo schema “Nome post” per ottenere collegamenti SEO e intuitivi.
Ritorna al terminale SSH e modifica il file delle impostazioni di Nginx. Apporteremo modifiche al file nginx.conf.
nano /etc/nginx/nginx.conf
La versione finale dovrebbe essere la seguente.
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 3; gzip on; server_names_hash_bucket_size 128; fastcgi_cache_path /var/cache/nginx/wordpress levels=1:2 keys_zone=wpcache:30m max_size=512M inactive=600m; include /etc/nginx/conf.d/*.conf; }
Successivamente, aggiungiamo le condizioni di base della cache al file default.conf.
nano /etc/nginx/conf.d/default.conf
Nel file di configurazione includere fastcgi_params; Elimina i segni sotto la riga, incolla il codice qui sotto con il tasto destro e salva con CTRL + X.
set $do_not_cache 0; if ($request_method = POST) { set $do_not_cache 1; } if ($query_string != "") { set $do_not_cache 1; } if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { set $do_not_cache 1; } if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.ph$ set $do_not_cache 1; } fastcgi_cache wpcache; fastcgi_cache_key "$request_method:$scheme://$host$request_uri"; fastcgi_cache_valid 200 60m; fastcgi_no_cache $do_not_cache; fastcgi_cache_bypass $do_not_cache; add_header X-F-Cache $upstream_cache_status; } }
Risultati della cache FastCGI
Riavviamo Nginx.
systemctl restart nginx
Siamo pronti per i test. Per testare la nostra ottimizzazione a un livello superiore, aumentiamo le richieste da 100 a 10000 e le richieste simultanee da 10 a 100. I risultati sono incredibili
ab -n 10000 -c 100 http://sitoweb.net/
Risultati
Concurrency Level: 100 Time taken for tests: 5.294 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 535020075 bytes HTML transferred: 532590000 bytes Requests per second: 1888.79 [#/sec] (mean) Time per request: 52.944 [ms] (mean) Time per request: 0.529 [ms] (mean, across all concurrent requests) Transfer rate: 98685.67 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 3 1.0 3 7 Processing: 3 50 237.6 15 3521 Waiting: 3 47 235.6 12 3520 Total: 4 52 237.8 17 3526 Percentage of the requests served within a certain time (ms) 50% 17 66% 18 75% 18 80% 19 90% 31 95% 99 98% 424 99% 463 100% 3526 (longest request)
Le richieste al secondo nel mio test sono 1888,79.