FastCGI ile WordPress Optimizasyonu
Optimizasyonu tamamlamak için hazırlanalım. Bu sefer Nginx tarafından geliştirilen sayfa önbellekleme ara katmanı, FastCGI’yi kuracağız.
Nginx FastCGI Yükleme / Kurulum
Bu özelliği kullanmak için WordPress’de kalıcı bağlantıları etkinleştirmeniz gerekir. Kontrol Paneline gidin, “Ayarlar” ve ardından “Kalıcı Bağlantılar”ı tıklayın. SEO ve kullanıcı dostu linkler elde etmeniz için “Yazı ismi” şeması kullanmanızı öneririm.
SSH terminaline dönün ve Nginx ayar dosyasını düzenleyin. nginx.conf dosyasında değişiklikler yapacağız.
nano /etc/nginx/nginx.conf
Son hali aşağıdaki gibi olmalı.
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; #burayi ilave ettik include /etc/nginx/conf.d/*.conf; }
Ardından, temel önbellek koşullarını default.con dosyasına ekleyelim.
nano /etc/nginx/conf.d/default.conf
Konfigürasyon dosyasında include fastcgi_params; satırının altında kalan işaretleri silerek aşağıdaki kodu sağ tuş ile yapıştırın ve CTRL + X ile kayıt edin.
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; } }
FastCGI önbellek sonuçlarını test edelim
Nginx’i yeniden başlatalım.
systemctl restart nginx
Test için hazırız. Yaptığımız optimizasyonu daha üst seviyede test etmek için istekleri 100’den 10000’e, eşzamanlı istekleri 10’dan 100’e artırıyoruz. Sonuçlar inanılmaz
ab -n 10000 -c 100 http://herhangi.net/
Sonuçlar
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)
Testimde saniye başı istek 1888.79. Son haline göre kıyaslama yapmak gerekirse değişim aşağıdaki gibi.
Optimize Konusu | Sayfa yükleme süresi (varsayılanla karşılaştırıldığında) | Saniye başı istek (Requests per second) |
---|---|---|
Varsayılan kurulum | 471 ms | 5.25 |
APC | 299 ms (Değişim %36.51) | 7.92 |
OPcache+APCu | 276 ms (Değişim %41.40) | 8.27 |
MariaDB Ayarları | 240 ms (Değişim %49.04) | 8.99 |
Tuned, gzip, MPM+php-fpm | 100 ms (Değişim %78.76) | 8.92 |
PHP 7+OPCache+APCu | 95 ms (%79.83) | 14.94 |
FastCGI | 95 ms (%79.83) | 1888.79 (%35876.95 Artış) |
Seriyi bu şekilde noktalıyoruz. Soru ve görüşlerinizi yorum alanından paylaşarak fikir alışverişi sağlayabiliriz. Okuduğunuz için teşekkür ederim.
Güncel yazı ve projeleri instagram'da duyuruyorum. Takip et, iletişimde kalalım ✔️@tahamumcu
Uzun zamandır araştırdığım bir yöntemdi, gayet kaliteli ve açıklayıcı bir şekilde anlatmışsınız. Teşekkürler.
Hocam çok detaylı anlatmışsınız teşekkür ederim. Hemen denemeye başlıyorum sayenizde. İyi çalışmalar kolay gelsin.
Evet bende bunu kendi sitem de yapmıştım teşekkürler, gerçekten iyi olmuş
Elinize sağlık hocam açıklayıcı kaliteli bir çalışma olmuş