1. Nginx Nedir ve Neden Tercih Edilir?
Nginx, hafif, hızlı ve yüksek performanslı bir HTTP ve ters proxy sunucusudur. Apache'ye kıyasla daha düşük sistem kaynakları tüketmesi ve büyük ölçekli trafiği daha verimli yönetmesi nedeniyle tercih edilir. Özellikle yüksek trafikli web siteleri, yük dengeleme ve statik içerik sunma gibi işlemler için idealdir.2. Nginx Kurulumu
2.1. Ubuntu/Debian için Nginx Kurulumu
Ubuntu veya Debian tabanlı bir sistemde Nginx kurmak için aşağıdaki komutları kullanabilirsiniz:
Bash:
sudo apt update
sudo apt install nginx -y
Bash:
systemctl status nginx
Bash:
sudo systemctl start nginx
2.2. CentOS/RHEL için Nginx Kurulumu
CentOS veya RHEL tabanlı sistemler için Nginx’i yüklemek için önce EPEL deposunu ekleyin:
Bash:
sudo yum install epel-release -y
sudo yum install nginx -y
Bash:
sudo systemctl start nginx
sudo systemctl enable nginx
3. Nginx Yapılandırması
3.1. Varsayılan Konfigürasyon Dosyası
Nginx’in ana konfigürasyon dosyası genellikle/etc/nginx/nginx.conf
dizininde bulunur. Temel bir yapılandırma için şu adımları takip edebilirsiniz:
Bash:
sudo nano /etc/nginx/nginx.conf
NGINX:
worker_processes auto;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html index.htm;
}
}
Bash:
sudo systemctl restart nginx
4. Nginx Performans Optimizasyonu
4.1. Worker Process ve Worker Connections Ayarları
Nginx’in çoklu işlem gücünü artırmak için nginx.conf dosyasındakiworker_processes
ve worker_connections
ayarlarını optimize edin:
NGINX:
worker_processes auto;
worker_connections 4096;
4.2. Gzip Sıkıştırma ile Performansı Artırma
Nginx’te gzip sıkıştırmasını etkinleştirerek sayfa yükleme sürelerini azaltabilirsiniz. nginx.conf dosyasına aşağıdaki satırları ekleyin:
NGINX:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
4.3. Cache (Önbellekleme) Kullanımı
Önbellekleme, statik içeriklerin hızla yüklenmesini sağlayarak performansı artırır. Aşağıdaki kodu konfigürasyon dosyanıza ekleyerek cache özelliğini etkinleştirebilirsiniz:
NGINX:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
access_log off;
}
5. Nginx Güvenlik Ayarları
5.1. Nginx İçin HTTPS ve SSL Sertifikası Kullanımı
Güvenliği artırmak için Let’s Encrypt SSL sertifikası yükleyebilirsiniz:
Bash:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
5.2. DDoS Saldırılarına Karşı Rate Limiting (Hız Sınırlandırma)
DDoS ve brute force saldırılarını önlemek için bağlantı sınırlaması ekleyebilirsiniz:
NGINX:
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
location / {
limit_req zone=mylimit burst=5;
}
}
6. Nginx Yeniden Başlatma ve Log Yönetimi
6.1. Nginx Servisini Yönetme
Nginx’i durdurmak, başlatmak ve yeniden başlatmak için şu komutları kullanabilirsiniz:
Bash:
sudo systemctl stop nginx
sudo systemctl start nginx
sudo systemctl restart nginx
6.2. Nginx Log Dosyalarını İnceleme
Hataları ve trafik istatistiklerini görmek için şu log dosyalarını kontrol edebilirsiniz:
Bash:
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
Eğer daha fazla geliştirme yapmak isterseniz, Nginx modülleri ve ters proxy ayarlarını inceleyerek gelişmiş yapılandırmalara geçiş yapabilirsiniz.
Son düzenleme: