Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Nginx ile LiteSpeed Cache Benzeri Davranış Elde Etmek için Üçüncü Parti Cache Modülleri Kullanımı

asteron

Üye
Katılım
14 Mart 2026
Mesajlar
20
Merhaba arkadaşlar, bugün sizlere Nginx üzerinde, LiteSpeed Cache'in sağladığına benzer güçlü bir önbellekleme (cache) katmanı oluşturmanın yollarından bahsedeceğim. Özellikle WordPress veya benzeri dinamik sitelerde, sayfa önbelleğinin hız ve performansa etkisi çok büyük. LiteSpeed Web Server (LSWS) ve LSCache modülü harika bir çözüm, ancak Nginx kullanıyorsanız ve sunucunuzu değiştirmek istemiyorsanız, üçüncü parti modüllerle benzer bir performans elde edebilirsiniz. Bu rehberde, bu modüllerden nasıl faydalanabileceğimizi adım adım inceleyeceğiz.

🔍 Neden Üçüncü Parti Cache Modülü?</B]

Nginx'in kendi FastCGI Cache'i güçlüdür, ancak LiteSpeed Cache gibi bazı gelişmiş özellikleri (örneğin, belirli bir kullanıcı durumuna göre önbelleği atlama/purge etme) doğrudan desteklemez. Bu noktada, ngx_cache_purge (cache temizleme) veya daha kapsamlı ngx_http_redis modülleri devreye giriyor. Benim sunucularda genelde Redis ile birlikte kullanmayı tercih ettiğim bir yapı var, çünkü önbellek temizleme işlemleri inanılmaz hızlı ve verimli oluyor.

⚙️ Temel Kurulum ve Modül Entegrasyonu

Öncelikle, Nginx'i bu modüllerle birlikte derlememiz gerekiyor. Mevcut Nginx'inizi kaldırmak istemiyorsanız, dinamik modül (dynamic module) olarak da ekleyebilirsiniz. Ben kaynaktan derlemeyi daha kontrollü buluyorum. Modül kaynak kodlarını indirelim.

Bash:
cd /usr/src
git clone https://github.com/nginx-modules/ngx_cache_purge.git
git clone https://github.com/redis/redis.git # Redis sunucusu için
# veya Redis modülü için: git clone https://github.com/onnimonni/nginx-redis-module.git # (Örnek, kullanacağınız modüle göre değişir)

Nginx'i yeniden derlemeden önce, mevcut yapılandırma argümanlarınızı öğrenmek çok önemli. Şu ayara çok dikkat etmelisiniz:

Bash:
nginx -V 2>&1 | grep arguments

Çıktıdaki `--with-...` parametrelerini alıp, yeni derleme komutunuza ekleyin. Ardından, Nginx'i modüllerle birlikte derleyelim. Örnek bir derleme komutu:

Bash:
./configure [MEVCUT_ARGÜMANLARINIZ] --add-module=/usr/src/ngx_cache_purge --add-module=/usr/src/nginx-redis-module
make
make install

🛠️ Nginx Konfigürasyonu (nginx.conf ve Site Config)

Modül kurulduktan sonra, asıl sihir konfigürasyonda başlıyor. Öncelikle /etc/nginx/nginx.conf dosyasının `http` bloğu içinde, önbellek bölgelerimizi tanımlayalım. Bu, FastCGI Cache için bir örnek:

NGINX:
http {
    ...
    # FastCGI Cache için paylaşımlı bellek bölgesi
    fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m max_size=1g use_temp_path=off;
    fastcgi_cache_key "$scheme$request_method$host$request_uri";
    fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
    fastcgi_cache_valid 200 301 302 60m; # 200 ve yönlendirme kodları 60 dakika cache'lensin
    fastcgi_cache_valid 404 1m; # 404 hataları 1 dakika cache'lensin

    # Redis için upstream tanımı (Eğer Redis modülü kullanıyorsanız)
    upstream redis_backend {
        server 127.0.0.1:6379;
        keepalive 1024;
    }
    ...
}

Şimdi, site özel konfigürasyon dosyanızda (örn: /etc/nginx/sites-available/siteniz.com), cache kurallarını ve purge (temizleme) endpoint'ini ekleyelim.

NGINX:
server {
    listen 80;
    server_name siteniz.com www.siteniz.com;
    root /var/www/siteniz.com;

    index index.php index.html index.htm;

    # Cache bypass için cookie kontrolü (Örn: giriş yapan kullanıcılar cache'lenmez)
    set $skip_cache 0;
    if ($http_cookie ~ "wordpress_logged_in_|comment_author|wp-postpass_|woocommerce_items_in_cart") {
        set $skip_cache 1;
    }

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

        # FASTCGI CACHE AYARLARI
        fastcgi_cache WORDPRESS;
        fastcgi_cache_bypass $skip_cache;
        fastcgi_no_cache $skip_cache;
        fastcgi_cache_methods GET HEAD;
        add_header X-Fastcgi-Cache $upstream_cache_status; # Cache durumunu header'da göster (opsiyonel, debug için)
    }

    # ÖNBELLEK TEMİZLEME (PURGE) ENDPOINT'I
    # BU BÖLÜM ÇOK ÖNEMLİDİR, GÜVENLİK İÇİN IP KISITLAMASI YAPIN!
    location ~ /purge(/.) {
        allow 127.0.0.1;
        allow YOUR_SERVER_IP; # Kendi sunucu IP'nizi yazın
        deny all;
        fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
    }

    # Redis Cache için örnek location (Eğer Redis modülünüz varsa)
    # location /redis-cache {
    #     set $redis_key "$uri";
    #     redis_pass redis_backend;
    # }
}

⚠️ Dikkat Edilmesi Gerekenler ve Optimizasyon

1. /purge lokasyonu çok kritiktir. Sadece güvendiğiniz IP adreslerine (sunucunuz, localhost veya yönetim paneliniz) izin verin. Aksi takdirde, herkes önbelleğinizi temizleyebilir!
2. `fastcgi_cache_path` içindeki `max_size` değerini disk alanınıza göre ayarlayın. 1GB iyi bir başlangıç noktasıdır.
3. `add_header X-Fastcgi-Cache` satırı, tarayıcıdan istek yapıldığında sayfanın cache'ten mi yoksa dinamik olarak mı geldiğini anlamanızı sağlar. Debug için açık bırakıp, production'da kapatabilirsiniz.
4. Cache sürelerini (`fastcgi_cache_valid`) sitenizin güncellik sıklığına göre ayarlayın. Haber siteleri için daha kısa, kurumsal siteler için daha uzun tutulabilir.
5. Nginx'i her yeniden yapılandırdıktan sonra mutlaka test edin: `nginx -t` ve ardından `systemctl reload nginx`.

📈 Sonuç ve Performans

Bu konfigürasyonu doğru bir şekilde uyguladığınızda, TTFB (Time To First Byte) sürelerinizde ciddi bir düşüş, sunucu yükünüzde ise büyük bir rahatlama göreceksiniz. LiteSpeed Cache kadar otomatize ve yönetimi kolay olmayabilir, ancak performans olarak ona çok yaklaşabilir, hatta bazı senaryolarda geçebilirsiniz. En büyük avantajı, mevcut Nginx altyapınızı değiştirmenize gerek kalmaması.

Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı kullandığınız modüller veya optimizasyon ipuçlarınız var mı? Takıldığınız bir nokta olursa aşağıya yazmaktan çekinmeyin, elimden geldiğince yardımcı olmaya çalışırım. Herkese sorunsuz ve hızlı sunucular dilerim!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri