Cloudflare ile Deploynix, Laravel uygulamalarınızı daha hızlı ve yönetilebilir hale getirmek için mükemmel bir birleşim sağlar. Cloudflare, ön uçta — önbellekleme, DDoS koruması ve global içerik dağıtımı — işlevlerini üstlenirken, Deploynix, arka uçta — sunucu yapılandırması, uygulama dağıtımı ve altyapı yönetimi — görevini üstlenir. Ancak, bu iki hizmetin doğru yapılandırılması bazı kritik detaylara dikkat etmeyi gerektirir. Yanlış yapılandırılmış SSL ayarları, hatalı proxy davranışı veya aşırı agresif önbellekleme gibi durumlar sorun yaratabilir. Bu kılavuz, yapılandırma sürecini adım adım açıklayarak, dikkat edilmesi gereken ayarları ve kaçınılması gereken tuzakları kapsıyor.
Neden Cloudflare ve Deploynix Birlikte Kullanılmalı?
Neden Cloudflare ve Deploynix Birlikte Kullanılmalı?
Yapılandırmaya geçmeden önce, Cloudflare’ın Deploynix ile idare edilen bir sunucuya ne eklediğini net bir şekilde anlamak önemlidir:
CDN ve önbellekleme. Cloudflare, dünya genelinde 300’ün üzerinde veri merkezine sahiptir. Statik varlıklar — CSS, JavaScript, görseller, fontlar — uç noktada önbelleğe alınır ve kullanıcılarınıza en yakın konumdan sunulur. Bu, statik içerikler için gecikmeyi yüzlerce milisaniyeden tek haneli rakamlara düşürür.
DDoS koruması. Cloudflare, dağıtılmış hizmet kesintisi saldırılarını, zararlı trafiğin sunucunuza ulaşmadan önce ağ uç noktasında absorbe eder. Cloudflare’ın ücretsiz katmanında bile sınırsız DDoS fikri mülkiyet koruması alırsınız.
Ağ Uygulama Güvenlik Duvarı (WAF). Cloudflare’ın WAF’ı, zararlı istekleri — SQL enjeksiyon girişimleri, XSS yükleri ve diğer yaygın saldırılar — Laravel uygulamanıza ulaşmadan önce filtreler.
Performans optimizasyonları. Cloudflare, Brotli sıkıştırması, HTTP/2 ve HTTP/3 desteği, görsel optimizasyonu ve kod minifikasyonu sunmaktadır; bu işlemler uygulama kodunuzda hiçbir değişiklik yapmadan uç noktada gerçekleştirilir.
DNS yönetimi. Cloudflare, hızlı ve güvenilir DNS sağlar ve yerleşik DNSSEC desteği sunar.
Adım 1: Alan Adınızı Cloudflare’a Ekleyin
Adım 1: Alan Adınızı Cloudflare’a Ekleyin
Henüz yapmadıysanız, alan adınızı Cloudflare’a ekleyin:
- dash.cloudflare.com adresinden üye olun veya oturum açın.
- “Add a Site” butonunu tıklayın ve alan adınızı girin.
- Bir plan seçin (ücretsiz katman çoğu Laravel uygulaması için yeterlidir).
- Cloudflare, mevcut DNS kayıtlarınızı tarar ve içe aktarır.
- Alan adınızdaki nameserver’ları, sağlanan Cloudflare nameserver’ları ile güncelleyin.
Nameserver yayılması genellikle birkaç saat sürer, ancak 48 saate kadar sürebilir. Bu süre zarfında, siteniz eski DNS’iniz aracılığıyla çalışmaya devam eder – herhangi bir kesinti yaşamazsınız.
Adım 2: DNS Kayıtlarını Yapılandırın
Adım 2: DNS Kayıtlarını Yapılandırın
Alan adınız Cloudflare’da olduğunda, Deploynix ile yönetilen sunucunuza yönlendiren DNS kayıtları oluşturmalısınız.
Root alan adınız için bir A kaydı oluşturun:
- Tip: A
- Ad: @ (veya alan adınız)
- İçerik: Sunucunuzun IP adresi (Deploynix kontrol panelinde bulunabilir)
- Proxy durumu: Proxied (turuncu bulut)
www alt alan adı için bir CNAME kaydı oluşturun (varsa):
- Tip: CNAME
- Ad: www
- İçerik: yourdomain.com
- Proxy durumu: Proxied (turuncu bulut)
Turuncu bulut simgesi, trafiğin Cloudflare ağından geçeceği anlamına gelir. Bulut gri olduğunda (Yalnızca DNS), trafik doğrudan sunucunuza gider ve Cloudflare’ın sağladığı avantajlardan yararlanamazsınız.
Önemli: Proxy etkin olduğunda, Cloudflare gerçek IP adresinizi gizler. Bu bir güvenlik avantajıdır — saldırganlar, IP’yi bilmediği için doğrudan köken sunucunuzu hedef almaz. Ancak, bu durum sunucunuzun isteğin günlüğünde Cloudflare’ın IP adreslerini göreceği anlamına gelir. Bunu aşağıdaki güvenilir proxyler bölümünde ele alacağız.
Adım 3: SSL Yapılandırması — Doğru Ayar Critik
Adım 3: SSL Yapılandırması — Doğru Ayar Critik
Bu kılavuzdaki en önemli bölümdür. Cloudflare ile Deploynix arasındaki yanlış SSL yapılandırması, yeniden yönlendirme döngülerine, karışık içerik uyarılarına veya güvensiz bağlantılara neden olabilir. İşte doğru şekilde yapılandırmanın yolları.
SSL Zincirini Anlamak
SSL Zincirini Anlamak
Sizde Cloudflare trafiğinizi proxy’liyorsa, iki SSL bağlantısı vardır:
- Ziyaretçi ile Cloudflare: Kullanıcıların tarayıcıları Cloudflare’nın uç sunucusu ile HTTPS üzerinden bağlantı kurar.
- Cloudflare ile Deploynix: Cloudflare sizin köken sunucunuza (Deploynix tarafından yönetilen) HTTPS üzerinden bağlanır.
Cloudflare dört SSL modu sunmaktadır:
- Kapalı: Şifreleme yok. Bunu asla kullanmayın.
- Esnek: Ziyaretçi ile Cloudflare arasında şifreleme sağlar ancak sunucunuza düz HTTP ile bağlanır. Bunu kaçının — bu, kullanıcılara yanlış bir güven duygusu verir.
- Tam: Her iki bağlantıyı da şifreler ancak köken sunucunuzun SSL sertifikasını doğrulamaz. Kendinden imzalı sertifikaları kabul eder.
- Tam (Sıkı): Her iki bağlantıyı da şifreler ve köken sunucunuzun SSL sertifikasını doğrular. Sunucunuzda geçerli bir sertifika gerektirir.
Doğru Ayar: Tam (Sıkı)
Doğru Ayar: Tam (Sıkı)
Cloudflare SSL modunu Tam (Sıkı) olarak ayarlayın. Bunun sebebi:
Deploynix, siteniz için geçerli Let’s Encrypt SSL sertifikalarını otomatik olarak sağlar. Bunlar, Cloudflare tarafından doğrulanan güvenilir sertifikalardır. Tam (Sıkı) kullanmak, sertifika doğrulaması ile uçtan uca şifreleme sağlar — en güvenli seçenektir.
Bunu yapılandırmak için:
- Cloudflare kontrol panelinde SSL/TLS > Genel bakış sekmesine gidin.
- Tam (Sıkı) seçeneğini seçin.
Hepsi bu kadar. Deploynix, Let’s Encrypt sertifika sağlama ve otomatik yenileme işlemlerini yönettiğinden, köken her zaman Cloudflare’ın doğrulayabileceği geçerli bir sertifikaya sahip olur.
Let’s Encrypt Çatışmalarından Kaçınma
Let’s Encrypt Çatışmalarından Kaçınma
Deploynix, Let’s Encrypt sertifikalarını vermek için HTTP-01 zorluklarını kullanır. Bu, Let’s Encrypt’in sunucunuza, belirli bir URL yolunda ( /.well-known/acme-challenge/ ) bağlantı kurabilmesi gerektirir.
Cloudflare, etki alanınızı proxy’liyorken, Let’s Encrypt doğrulama istekleri önce Cloudflare’dan geçiyor. Bu genellikle sorun yaşatmaz, ancak bazı iki senaryo soruna yol açabilir:
Tüm yollar için HTTPS zorlayan sayfa kuralları veya yönlendirmeler. Cloudflare’da HTTP trafiğinin tümünü HTTPS’ye yönlendiren bir sayfa kuralınız varsa, ACME zorlama isteği (HTTP üzerinden gelir) yönlendirilir ve başarısız olur. Çözüm: /.well-known/acme-challenge/* yollarını yönlendiren sayfa kuralları oluşturmayın. Cloudflare’a ait “Always Use HTTPS” ayarı, ACME zorlama istekleri ile etkileşime geçmeden HTTPS yönlendirmesini otomatik olarak yapar.
Cloudflare’ın “Always Use HTTPS” ayarı. Bu ayar, tüm ziyaretçi istekleri için HTTP’yi HTTPS’ye yönlendirir ancak sunucu arası doğrulama isteklerini etkilemez. Bu ayarı etkinleştirmek güvenlidir ve Deploynix aracılığıyla Let’s Encrypt sertifika verilmesine müdahale etmez.
Alternatif: Cloudflare Origin Sertifikaları. Eğer köken bağlantınız için Let’s Encrypt kullanmaktan tamamen kaçınmak istiyorsanız, Cloudflare’ın Origin Sertifikasını oluşturabilirsiniz. Bu, Cloudflare tarafından imzalanan ve Cloudflare’ın proxy’lardında güvenilir olan bir sertifikadır ama tarayıcılar tarafından güvenilir değildir. Ücretsizdir, 15 yıla kadar geçerlidir ve köken üzerindeki Let’s Encrypt yenileme gereksinimlerini ortadan kaldırır. Ancak Cloudflare’ı geçmek istediğinizde (hata ayıklama veya bir Cloudflare kesintisi sırasında) siteniz tarayıcılarda sertifika hatası gösterir. Çoğu yapılandırma için, Deploynix üzerinden Let’s Encrypt kullanmak daha uygun bir tercihtir.
Adım 4: Laravel’de Güvenilir Proxyleri Yapılandırın
Adım 4: Laravel’de Güvenilir Proxyleri Yapılandırın
Cloudflare trafiğinizi proxy’lediğinde, Laravel uygulamanız Cloudflare’ın IP adreslerini, ziyaretçilerinizin gerçek IP adresleri yerine görür. Bu durum şunları etkiler:
request()->ip()Cloudflare’ın IP’sini döner, ziyaretçinin değil.- IP adresine dayalı oran sınırlama Cloudflare’ı, bireysel kullanıcıları değil sınırlar.
- Günlükleme ve analizler Cloudflare IP’lerini gösterir.
Laravel’in TrustProxies middleware’i bu durumu çözer. bootstrap/app.php dosyanızda güvenilir proxyleri yapılandırın:
->withMiddleware(function (Middleware $middleware) {
$middleware->trustProxies(at: '*');
})at: '*' ayarı tüm proxyleri güvenilir kılar; bu, Cloudflare’ın tek proxy katmanınız olduğu durumlarda uygundur. Daha spesifik olmak isterseniz, Cloudflare’ın IP aralıklarını ayarlayabilirsiniz, ancak bunlar periyodik olarak değişir ve yönetilmeleri ek bakım yükü kaldırır.
Güvenilir proxyler yapılandırıldığında, Laravel X-Forwarded-For başlığını okur ve ziyaretçilerinizin gerçek IP adreslerini doğru şekilde tanımlar.
Adım 5: Önbellekleme Yapılandırması
Adım 5: Önbellekleme Yapılandırması
Cloudflare’ın önbelleklemesi güçlüdür, ancak Laravel uygulamaları için doğru yapılandırılması gerekir. Aksi takdirde, eski veya yanlış içerikler sunulabilir.
Cloudflare Varsayılan Olarak Neyi Önbelleğe Alır?
Cloudflare Varsayılan Olarak Neyi Önbelleğe Alır?
Cloudflare varsayılan olarak, dosya uzantısına bağlı olarak statik dosyaları önbelleğe alır: CSS, JavaScript, görseller, fontlar ve diğer statik varlıklar. HTML yanıtlarını veya API yanıtlarını önbelleğe almaz.
Bu varsayılan davranış, Laravel uygulamaları için genellikle doğrudur. Blade görünümleriniz, API yanıtlarınız ve dinamik sayfalarınız Cloudflare tarafından önbelleğe alınmazken, Vite ile derlenmiş varlıklar uç noktada önbelleğe alınır.
Cache-Control Başlıkları
Cache-Control Başlıkları
Laravel uygulamanız uygun Cache-Control başlıklarını göndermelidir. Çoğu dinamik sayfa için:
return response()
->view('dashboard')
->header('Cache-Control', 'no-store, no-cache, must-revalidate');Bir süreliğine önbelleğe alınabilecek API yanıtları için:
return response()
->json($data)
->header('Cache-Control', 'public, max-age=60');Cloudflare, kökeninizin Cache-Control başlıklarına saygı duyar. Eğer bunları ayarlamazsanız, Cloudflare kendi varsayılanlarını uygular; bu da istemediğiniz içeriği önbelleğe alabilir.
Vite Varlık Önbelleklemesi
Vite Varlık Önbelleklemesi
Laravel Vite, derlenmiş varlıklar için hashlenmiş dosya adları oluşturur (örneğin, app-DfG8h2k.js). İçerik değiştiğinde dosya adı da değiştiğinden, bu varlıklar baskın olarak önbelleğe alınabilir. Cloudflare, bunu otomatik olarak yönetir — hashlenmiş varlıklar, süresi dolana veya iptal edilene kadar önbelleğe alınır ve yeni dağıtımlar, önbelleği atlayan yeni dosya adları oluşturur.
Dağıtım Sonrası Önbelleği Temizleme
Dağıtım Sonrası Önbelleği Temizleme
Eğer önbellekteki içeriği etkileyen bir değişiklik dağıtırsanız (örneğin, herkese açık olarak önbelleğe alınmış bir API yanıtını güncellemek), Cloudflare’ın önbelleğini temizlemeniz gerekebilir. Bunu Cloudflare kontrol paneli üzerinden Önbellek > Yapılandırma > Tümünü Temizle sekmesinden ya da Cloudflare API’si üzerinden yapabilirsiniz.
Dağıtım sonrası otomatik önbellek temizleme için, Deploynix dağıtım script’ine Cloudflare API’sını çağıracak bir adım ekleyebilirsiniz:
curl -X POST "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/purge_cache" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
--data '{"purge_everything":true}'YOUR_ZONE_ID ve YOUR_API_TOKEN değerlerini gerçek değerlerinizle değiştirin. API token’ınızı ortam değişkenlerinde saklayın, kodlayarak değil.
Adım 6: Güvenlik Ayarları
Adım 6: Güvenlik Ayarları
Bot Koruması
Bot Koruması
Cloudflare’ın Bot Yönetimi (ücretli planlarda mevcuttur) ve Bot Savaşım Modu (ücretsiz planlarda mevcuttur) zararlı otomatik trafiği filtrelemeye yardımcı olur. Bot Savaşım Modu’nu Güvenlik > Botlar altından etkinleştirin.
Aşırı hassas bot korumasının, aşağıdakiler de dahil olmak üzere, meşru trafiği engelleyebileceğini unutmayın:
- Stripe, Paddle veya GitHub gibi hizmetlerden webhook teslimatları.
- Laravel uygulamanızla entegrasyon sağlayan API istemcileri.
- Sitenizin kullanılabilirliğini kontrol eden izleme hizmetleri.
Webhook uç noktalarınız varsa, bu belirli yollar için bot korumasını atlayacak bir Cloudflare WAF kuralı oluşturmayı düşünün.
Güvenlik Duvarı Kuralları
Güvenlik Duvarı Kuralları
Cloudflare’ın WAF kuralları (ücretsiz katman 5 özel kural içerir) sunucunuza ulaşmadan önce trafiği engelleyebilir. Laravel uygulamaları için yararlı olabilecek bazı kurallar:
- Hassas yollara erişimleri engelleyin:
.env,.git,storage/ve asla kamuya açık olmaması gereken diğer yolları engelleyin. - Ülke engeli: Uygulamanız belirli bölgelerde hizmet veriyorsa, kullanıcınızın olmadığı ülkelerden gelen trafiği engelleyin.
- Oran sınırlama: Cloudflare’ın oran sınırlama kuralları, Laravel’ın dahili oran sınırlamasını tamamlar ve kötüye kullanım trafiğini engelleyebilir.
Güvenlik Başlıkları
Güvenlik Başlıkları
Cloudflare, uç noktada yanıtlarınıza güvenlik başlıkları ekleyebilir. SSL/TLS > Uç Sertifikaları altında etkinleştirmeniz gerekenler:
- HTTP Strict Transport Security (HSTS): Tarayıcılara gelecekteki tüm istekler için HTTPS kullanmalarını zorlar. En az 6 ay boyunca max-age ile etkinleştirin.
- Minimum TLS Sürümü: TLS 1.2 olarak ayarlayın ki eski, güvensiz protokolleri bloklayın.
Adım 7: Performans Optimizasyonları
Adım 7: Performans Optimizasyonları
Brotli Sıkıştırması
Brotli Sıkıştırması
Brotli sıkıştırmasını Hız > Optimizasyon > İçerik Optimizasyonu altında etkinleştirin. Brotli, metin içeriği için gzip’ten daha iyi sıkıştırma oranları sağlar ve HTML, CSS ve JavaScript yanıtlarının boyutunu azaltır.
Erken İpuçları
Erken İpuçları
Cloudflare, HTTP 103 Early Hints’i destekler; bu, tarayıcılara HTML yanıtı tamamen üretilmeden önce kritik kaynakları yüklemeleri için bilgi verir. Bu ayarı Hız > Optimizasyon altında etkinleştirerek sayfa yükleme sürelerinizi birkaç milisaniye kısaltabilirsiniz.
HTTP/3 (QUIC)
HTTP/3 (QUIC)
HTTP/3’ü Ağ altında etkinleştirin. HTTP/3, daha hızlı bağlantı kurulumu ve güvenilmez ağlarda (mobil, WiFi) daha iyi performans sunar. Modern tarayıcılar HTTP/3’ü otomatik olarak destekler ve mevcut olduğunda bunu kullanır.
Argo Akıllı Yönlendirme (Ücretli)
Argo Akıllı Yönlendirme (Ücretli)
Argo Akıllı Yönlendirme, Cloudflare ile köken sunucunuz arasındaki ağ yolunu optimize eder ve tıkanıklık oluşturan internet yollarını dolaşarak gecikmeyi azaltır. Aylık $5 ve GB başına $0.10 olarak fiyatlandırılır; ancak gecikmeye duyarlı uygulamalar için iyileştirme önemli olabilir.
Yaygın Sorunlar ve Çözümler
Yaygın Sorunlar ve Çözümler
Yeniden yönlendirme döngüleri. Hemen hemen her zaman yanlış SSL modundan kaynaklanır. SSL’yi Tam (Sıkı) olarak ayarlayın ve Deploynix’in etkin bir SSL sertifikasına sahip olduğundan emin olun.
Karışık içerik uyarıları. HTML’niz HTTP kaynaklarına başvuruyor. Cloudflare’ın “Otomatik HTTPS Yeniden Yazımı” (SSL/TLS > Uç Sertifikaları altında) bunu otomatik olarak düzeltmek için HTTP URL’lerini yanıtlarınızdaki HTTPS olarak yeniden yazar.
WebSocket bağlantı hataları. Cloudflare, tüm planlarda WebSocket bağlantılarını destekler; fakat WebSocket sunucunuzun kullandığı alt alan için proxy durumunun etkin olduğundan emin olmalısınız. Laravel Reverb, ekstra yapılandırma gerektirmeden Cloudflare’ın proxy’sinden geçer.
Büyük dosya yükleme hataları. Cloudflare’ın ücretsiz planı, her istek başına 100MB yükleme sınırına sahiptir. Uygulamanız büyük dosya yüklemeleri kabul ediyorsa, ücretli bir plana geçmeniz gerekebilir (Pro’da 200MB, Business’da 500MB) veya Cloudflare’ı tamamen geçerek doğrudan S3 yüklemeleri uygulamalısınız.
Son Yapılandırma Kontrol Listesi
Son Yapılandırma Kontrol Listesi
Cloudflare + Deploynix ayarınızı tamamladıktan sonra gözden geçirmeniz gerekenler:
- DNS kayıtlarının Deploynix sunucunuza turuncu proxy buludu etkin olarak yönlendirdiğinden emin olun.
- SSL modunun Tam (Sıkı) olarak ayarlı olduğundan emin olun.
- Let’s Encrypt sertifikalarının Deploynix’te başarıyla verilip yenilendiğini kontrol edin.
- Laravel uygulamanızda güvenilir proxylerin yapılandırıldığından emin olun.
Cache-Controlbaşlıklarının dinamik yollarınız için uygun şekilde ayarlandığından emin olun.- Bot Savaşım Modu’nun meşru webhook’ları engellemeyecek şekilde etkin olduğundan emin olun.
- HSTS’nin uygun max-age ile etkinleştirildiğinden emin olun.
- Brotli sıkıştırmasının etkinleştirildiğinden emin olun.
- HTTP/3’ün etkinleştirildiğinden emin olun.
Tüm bu ayarları yaptıktan sonra, Laravel uygulamanız Cloudflare’ın global ağı ve Deploynix’in operasyonel yönetiminden faydalanabilir. Trafik filtrelenir, önbelleğe alınır ve uç noktada optimize edilirken, köken sunucunuz yalnızca dinamik işleme gerektiren istekleri alır.
Bu yapılandırma, kişisel bir projeden yüksek trafikli bir üretim uygulamasına kadar ölçeklenebilir ve temel unsurları doğru şekilde alarak başlar.
Kaynak: Orijinal Makale
- Neden Cloudflare ve Deploynix Birlikte Kullanılmalı?
- Adım 1: Alan Adınızı Cloudflare’a Ekleyin
- Adım 2: DNS Kayıtlarını Yapılandırın
- Adım 3: SSL Yapılandırması — Doğru Ayar Critik
- Adım 4: Laravel’de Güvenilir Proxyleri Yapılandırın
- Adım 5: Önbellekleme Yapılandırması
- Cloudflare Varsayılan Olarak Neyi Önbelleğe Alır?
- Cache-Control Başlıkları
- Vite Varlık Önbelleklemesi
- Dağıtım Sonrası Önbelleği Temizleme
- Adım 6: Güvenlik Ayarları
- Adım 7: Performans Optimizasyonları
- Yaygın Sorunlar ve Çözümler
- Son Yapılandırma Kontrol Listesi


