Wordpress

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

Taha Mumcu

Ben Taha Mumcu, Bilişim sektöründe uzun süreden beri tecrübe edinerek bir yerlere gelmek için çalışmalarına devam eden ve sektörü yakından takip ederek hiç bir veriden geri kalmayan, girişimci ruhu ile tüm işlere elinden geldiğinde çalışma yapan bir girişimciyim. Henüz genç yaşta birçok tecrübeye ulaşan ve koyulan engelleri aşarak bir yerlere gelmek için çaba göstermekten çekinmiyorum.

İlgili Makaleler

4 Yorum

  1. 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.

  2. Hocam çok detaylı anlatmışsınız teşekkür ederim. Hemen denemeye başlıyorum sayenizde. İyi çalışmalar kolay gelsin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu

Reklam Engelleyici Algılandı

Lütfen reklam engelleyiciyi devre dışı bırakarak bizi desteklemeyi düşünün