WordPress sisteminin en çok kullanılan cache eklentilerinden birisi wp süper cache için en iyi nginx konfigürasyon ayarlarını sizler için paylaşıyorum. Bu konfigürasyonu makaleci.com sitemizde de kullanıyoruz..

Nginx ve php kullanan sunucular için hazırladığım bu nginx ayarları ile wordpress rewrite ayarlarını hem en iyi şekilde kullanacaksınız, hemde wp süper cache eklentisinin sistem üzerinde aldığı cache dosyalarına direk nginx üzerinden bağlantı sağlayarak, sitenizin açılış hızlarını artırabilir, sunucuya binen php ve mysql yüklerini sıfırlayabilirsiniz.

Sıfırlayabilirsiniz diyorum çünkü, aşağıdaki nginx ayarları ile, gelen istekler öncelikle cache varmı diye kontrol eder, wp süper cache ile alınmış bir html versiyonu varsa, nginx kullanıcıya direkt olarak bu cache dosyasını gösterir. Sonuçda sunucularımızı en çok zorlayan php ve mysql uygulamalarına hiç dokunmamış oluruz.

Eğer cache yoksa, nginx kullanıcıyı wordpress ‘e yönlendirerek wp süper cache ‘nin o anki sayfanın bir html çıktısını almasını sağlar. Sonraki isteklerde bu html dosyası işleme alınacağından, sunucuda yada host üzerindeki yük sıfırlanmış olur. Örnek bir grafik hazırladım, umarım daha iyi anlamanıza yardımcı olur.

Hazırladığım nginx ve wp süper cache eklentisi konfigürasyon ayarlarının en güzel yanı, wp süper cache ile alınan mobil ve masaüstü cacheleri de destekliyor olması. Sitenize giren kullanıcının mobil mi, yoksa masaüstümü diye kontrol eder, sonrasında bu versiyon için cache varmı diye kontrol eder, varsa onu gösterir, yoksa wordpress ‘e gönderir. İsterseniz lafı fazla uzatmadan nginx için wp süper cache ayarlarını vereyim.

Ancak ondan önce wp süper cache eklentisindeki aşağıdaki iki ayarın işaretlenmiş olduğundan emin olun:

Nginx wp süper cache konfigürasyonu

		set $cache_ismi $request_uri;

		#
		# asagidaki islemler icin cache devre disi birakilir
		#
		
		# POST istegi gelirse cache ozelligini devre disi birakiriz.
		if ($request_method = POST) {
			set $cache_ismi 'cache alma';
		}
		
		if ($query_string != "") {
			set $cache_ismi 'cache alma';
		}

		# Asagidaki parametrelere uyan url yapisi gelirse cache devre disi birakilir.
		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.php|wp-locations.php |sitemap(_index)?.xml
							  |[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {

			set $cache_ismi 'cache alma';
		}

		# giris yapmis kullanicilar ve son yorumcular icin cache iptal ederiz.
		if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp_postpass|wordpress_logged_in") {
			set $cache_ismi 'cache alma';
		}
	
		if ($arg_s != "") { set $cache_ismi 'cache alma'; } # arama sorgulari 
		if ($arg_p != "") { set $cache_ismi 'cache alma'; } # p=1 seklindeki baglantilar icin.
		if ($arg_amp != "") { set $cache_ismi 'cache alma'; } # amp test
		if ($arg_preview = "true") { set $cache_ismi 'cache alma'; } # sayfa yada konu onizleme sayfasi
		if ($arg_ao_noptimize != "") { set $cache_ismi 'cache alma'; } # Autoptimize eklentisi icin

		#
		# Cache devredisi birakma sonu
		#

		set $cihaz "Kuaza Nginx+WP-super-cache: Masaustu cache yada Orjinal";
		set $cachedosyasi "/wp-content/cache/supercache/$http_host/$cache_ismi/index-https.html";
		
		#if (-f $document_root/wp-content/cache/supercache/$http_host/$cache_ismi/index-https.html) {
		#	set $cihaz "Kuaza Nginx+WP-super-cache: Masaustu cache";
		#}

		if ($http_user_agent ~* "2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800|iPad") { set $cihaz "Kuaza Nginx+WP-super-cache: Mobil cache"; set $cachedosyasi "/wp-content/cache/supercache/$http_host/$cache_ismi/index-https-mobile.html"; }

		if ($http_user_agent ~* "w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sams|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda\ |xda-|ipad") { set $cihaz "Kuaza Nginx+WP-super-cache: Mobil cache"; set $cachedosyasi "/wp-content/cache/supercache/$http_host/$cache_ismi/index-https-mobile.html"; }

		# kontrol duzeni: (1) cachedosyasi, (2) normal url, (3) php
		location / { 
			add_header "X-Cache" "HIT - $cihaz $upstream_cache_status";
			try_files $cachedosyasi $uri $uri/ /index.php?$args;
		}

Yukarıdaki kodu kopyalayarak, kendi nginx site ayar dosyanızda ki aşağıdaki kod alanını bularak yerine yapıştırmanız yeterli olacaktır ;)

location / {

......

}

Bu işlemden sonra nginx e restart atarak ayarlarınızın aktif olmasını sağlayabilirsiniz.

nginx -t && service nginx restart

Komutu çalıştırdıktan sonra hata vermezse, sitenizi kontrol ederek çalışıp çalışmadığını anlayabilirsiniz.

Yaptığımız ayarların çalışıp çalışmadığını anlamak için bu siteye girerek, sitemizi yazıyoruz ve gönderiyoruz. Sonrasında aşağıdaki resimdeki gibi bir alan görüyorsanız, sitemiz sorunsuz çalışıyor demektir ;)

Nginx konusunda bilgisi olan arkadaşlar, kolaylıkla bunu yapabilir, ancak bilgisi olmayan arkadaşlar yorum yaparsa yardımcı olmaya çalışırım.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

This site uses Akismet to reduce spam. Learn how your comment data is processed.