Günümüzde, birbirine bağlı bir dünyada web hizmetlerinin güvenliği ve optimizasyonu büyük önem taşıyor. Bu amaçla, Nginx’i ters proxy olarak kullanmak, gelen istekleri verimli bir şekilde yönetmek, trafiği birden fazla arka uç sunucusu arasında dengelemek ve iletişimi SSL sertifikası ile güvence altına almak için yaygın bir yaklaşımdır. Bu kılavuz, bu sağlam yapılandırmayı sağlamak için gereken adımları sizinle paylaşacak.
Gereksinimler
Yapılandırmaya başlamadan önce, aşağıdaki gereksinimlerin sağlandığından emin olun:
- Sunucunuzun IP adresine yönlendirilmiş bir alan adı.
- Sunucunuzda Nginx kurulu olmalı.
- Sunucu yönetimi ve terminal kullanımı hakkında temel bilgi.
Adım 1: Nginx’i Kurun
Eğer Nginx kurulu değilse, sunucunuzun paket yöneticisi ile kurulum yapabilirsiniz. Ubuntu için aşağıdaki komutları çalıştırın:
$ sudo apt update
$ sudo apt install nginx
Adım 2: Yük Dengeleme İçin Arka Uç Sunucuları Yapılandırın
Gelen istekleri birden fazla arka uç sunucusu arasında dağıtmak için Nginx yapılandırmasında arka uç sunucularını tanımlayın. Örneğin, uygulamanızın 3000 ve 3001 numaralı portlarda çalışan iki arka uç sunucusu olduğunu varsayalım. Nginx yapılandırma dosyasını açın:
$ sudo nano /etc/nginx/nginx.conf
HTTP bloğu içinde aşağıdaki arka uç bloğunu ekleyin:
http {
upstream backend {
server localhost:3000;
server localhost:3001;
}
# Diğer yapılandırmalar...
}
Adım 3: Nginx’i Ters Proxy Olarak Yapılandırın
Alan adınız için /etc/nginx/sites-available/ dizininde yeni bir yapılandırma dosyası oluşturun:
$ sudo nano /etc/nginx/sites-available/yourapp
Nginx’i ters proxy olarak yapılandırın ve trafiği arka uç sunucuları arasında dağıtın:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Adım 4: Yapılandırmayı Etkinleştirin
Yapılandırmayı etkinleştirmek için sembolik bir bağlantı oluşturun:
$ sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/
Adım 5: Nginx Yapılandırmasını Test Edin
Nginx yapılandırmanızda sözdizim hatası olmadığından emin olun:
$ sudo nginx -t
Her şey yolundaysa, Nginx’i yeniden yükleyin:
$ sudo systemctl reload nginx
Adım 6: Certbot’u Kurun ve SSL Sertifikası Alın
Certbot, SSL sertifikalarını almak ve yenilemek için süreci otomatikleştirir. Certbot’u kurun ve alan adınız için SSL sertifikası alın:
$ sudo apt install certbot python3-certbot-nginx
$ sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Adım 7: SSL Yapılandırmasını Doğrulayın
Web sitenizin HTTPS üzerinden erişilebilir olduğundan ve SSL sertifikasının doğru bir şekilde yapılandırıldığından emin olun.
Adım 8: Otomatik Sertifika Yenileme
Certbot, otomatik sertifika yenileme için bir cron görevi ayarlar. Bunu kontrol etmek için crontab’ı gözden geçirin:
$ sudo crontab -l
Adım 9: Yük Dengelemeyi İzleyin
Erişim günlüklerini ve sunucu performansını kontrol ederek yük dengelemesini izleyebilirsiniz. Ayrıca, gerektiğinde Nginx’in farklı yük dengeleme algoritmalarını kullanacak şekilde yapılandırabilirsiniz.
Tebrikler! Nginx’i ters proxy olarak yük dengelemesiyle birlikte başarıyla kurdunuz ve Certbot kullanarak SSL sertifikası aldınız. Web uygulamanız artık HTTPS üzerinden güvenli bir şekilde erişilebilir ve daha iyi performans ile güvenilirlik için birden fazla arka uç sunucusu arasında dağıtılmış durumda.