İçerik Dağıtım Ağı Nedir?
İçerik Dağıtım Ağı (CDN), web içeriklerinin daha hızlı ve güvenilir bir şekilde dağıtımını sağlamak için tasarlanmış bir sistemdir. Genellikle, kullanıcıların yakınındaki sunuculardan içerik alınarak gecikmeler azaltılır ve yük dengelemesi sağlanır. CDN, statik içeriklerin (resimler, CSS ve JavaScript dosyaları gibi) yanı sıra dinamik içeriklerin de önbelleğe alınmasına olanak tanır. Bu yazılımın temel bileşenleri arasında Varnish ve Nginx yer alır.
Varnish Kurulumu
Varnish, web uygulamalarının performansını artırmak için kullanılan bir ters proxy ve önbellekleme sistemidir. Rocky Linux 9’a Varnish kurmak için aşağıdaki adımlar izlenir:
1. Gerekli Depoları Ekleyin: Varnish’i kurmak için önce EPEL deposu eklenmelidir. Aşağıdaki komut ile depoyu ekleyin:
“`bash
sudo dnf install epel-release
“`
2. Varnish’i Yükleyin: EPEL deposu eklendikten sonra Varnish’i yüklemek için şu komut kullanılır:
“`bash
sudo dnf install varnish
“`
3. Yapılandırma Dosyalarını Düzenleyin: Varnish ile ilgili ana yapılandırma dosyası /etc/varnish/default.vcl olarak bulunur. Bu dosya, Varnish’in önbellekleme davranışını kontrol eder. Aşağıdaki örnekte, Varnish’in 8080 portunu dinlemesi ve arka uç sunucusunun 127.0.0.1:3000 olduğu belirtilmiştir:
“`vcl
vcl 4.0;
backend default {
.host = “127.0.0.1”;
.port = “3000”;
}
sub vcl_recv {
if (req.http.X-Forwarded-For) {
set req.http.X-Real-IP = req.http.X-Forwarded-For;
} else {
set req.http.X-Real-IP = req.ip;
}
}
“`
4. Varnish Servisini Başlatın: Varnish servisini başlatmak için şu komut kullanılır:
“`bash
sudo systemctl start varnish
“`
5. Servisi Otomatik Başlatma İçin Ayarlayın: Varnish’in her sistem açılışında otomatik olarak başlaması için aşağıdaki komut ile ayarlanmalıdır:
“`bash
sudo systemctl enable varnish
“`
Nginx Kurulumu
Nginx, yüksek performansa sahip bir web sunucusu olarak Varnish ile birlikte çalışarak etkin bir CDN oluşturur. Nginx’in kurulumu ve yapılandırılması için aşağıdaki adımlar izlenir:
1. Nginx’i Yükleyin: Nginx kurulumu için aşağıdaki komut kullanılır:
“`bash
sudo dnf install nginx
“`
2. Yapılandırma Dosyalarını Düzenleyin: Nginx’in ana yapılandırma dosyası /etc/nginx/nginx.conf’tir. Varnish tarafından yönlendirilen istekler için 3000 portunu dinleyen bir sunucu bloğu oluşturulmalıdır:
“`nginx
server {
listen 3000;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
“`
3. Nginx Servisini Başlatın: Nginx servisini başlatmak için şu komut kullanılır:
“`bash
sudo systemctl start nginx
“`
4. Servisi Otomatik Başlatma İçin Ayarlayın: Nginx’in sistem açılışında otomatik olarak başlaması için aşağıdaki komut çalıştırılmalıdır:
“`bash
sudo systemctl enable nginx
“`
Varnish ve Nginx Arasındaki İletişimi Sağlama
Varnish, kullanıcı taleplerini Nginx’e yönlendirdiğinde, Nginx bu talepleri işleyerek gerekli yanıtları oluşturur. Kullanıcılar ilk olarak Varnish sunucusuna bağlanır ve Varnish bunun sonucunda Nginx sunucusuna yönlendirir. Varnish, yanıtları önbelleğe alarak aynı isteği daha sonra alması durumunda kullanıcıya daha hızlı bir yanıt sağlar.
Performans İzleme ve Optimizasyon
Kurulum tamamlandıktan sonra sistemin performansı izlenmelidir. Varnish, gerçek zamanlı istatistikler sunma yeteneğine sahiptir. Aşağıdaki komut ile Varnish istatistiklerine erişilebilir:
“`bash
varnishstat
“`
Varnish ve Nginx yapılandırmaları, ihtiyaca göre optimize edilebilir. Örneğin, önbellek süreleri, zaman aşımı ayarları ve diğer performans parametreleri gözden geçirilmelidir. Ayrıca, düzenli olarak güncellemeler de sağlanmalıdır.
Güvenlik
Varnish ve Nginx kurulumları sırasında güvenlik de göz önünde bulundurulmalıdır. Sunucu güvenliğini artırmak için güvenlik duvarı ayarları yapılmalı ve yalnızca gerekli portlar açık tutulmalıdır. Ayrıca, Nginx üzerinde SSL sertifikaları kullanarak HTTPS desteği sağlanması önerilir.
Rocky Linux 9 üzerinde Varnish ve Nginx kullanarak bir CDN kurulumu, web uygulamalarının performansını önemli ölçüde artırabilir. Yukarıda belirtilen adımlar, bu sistemin hayata geçirilmesine yönelik temel bilgileri içermektedir. Amaca uygun yapılandırmalar yapılarak sistemin etkinliği ve güvenliği artırılabilir.