KernelPunk

root
Forum yöneticisi

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
Kurulum tamamlandıktan sonra Nginx servisinin çalışıp çalışmadığını kontrol edin:
Bash:
systemctl status nginx
Eğer çalışmıyorsa, aşağıdaki komutla başlatabilirsiniz:
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
Daha sonra servisi başlatın ve otomatik başlatmaya ekleyin:
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
Dosyanın içeriği aşağıdaki gibi olabilir:
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;
    }
}
Düzenlemeleri kaydettikten sonra Nginx’i yeniden başlatın:
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ındaki worker_processes ve worker_connections ayarlarını optimize edin:
NGINX:
worker_processes auto;
worker_connections 4096;
Bu ayarlar, sunucunun daha fazla bağlantıyı aynı anda işleyebilmesini sağlar.

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;
Bu sayede HTML, CSS ve JavaScript dosyaları sıkıştırılarak daha hızlı iletilecektir.

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;
}
Bu ayar, statik dosyaların 30 gün boyunca tarayıcı tarafından önbelleğe alınmasını sağlar.​

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
Bu işlem, sitenizi HTTPS’ye geçirerek güvenli bir bağlantı sağlar.

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;
    }
}
Bu ayar, bir IP’nin saniyede en fazla 1 istekte bulunmasına izin verir.​

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
Nginx, yüksek performanslı bir web sunucusu olarak, doğru yapılandırıldığında olağanüstü hız ve verimlilik sunar. Bu rehberde Nginx’in kurulumu, temel yapılandırmaları, performans optimizasyonları ve güvenlik ayarları hakkında kapsamlı bilgiler sunduk. Web sitenizin hızlı, güvenli ve ölçeklenebilir olmasını sağlamak için bu adımları takip edebilirsiniz.

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:
Back
Top