Nginx Nasıl Kurulur? Ubuntu 22.04 ve AlmaLinux Adım Adım Rehber
Nginx yüksek performanslı web sunucusunun Ubuntu 22.04 ve AlmaLinux 9 üzerinde kurulum ve yapılandırma rehberi.
Nginx Nedir?
Nginx (okunuşu: "engine-x"), Igor Sysoev tarafından 2002 yılında geliştirilen ve 2004'te açık kaynak olarak yayımlanan yüksek performanslı web sunucusu, reverse proxy, load balancer ve HTTP önbellekleme sunucusudur. Geleneksel Apache modelinin aksine Nginx, olay tabanlı (event-driven) ve asenkron bir mimari kullanır; bu sayede binlerce eşzamanlı bağlantıyı son derece düşük RAM tüketimiyle karşılayabilir.
W3Techs verilerine göre internet üzerindeki web sitelerinin %34'ünden fazlası Nginx kullanmaktadır. Netflix, Dropbox, WordPress.com, GitHub ve Cloudflare gibi platformların tercih ettiği Nginx, hem statik dosya sunumunda hem de PHP-FPM, Node.js veya Python gibi backend servisleri önünde reverse proxy olarak mükemmel performans göstermektedir.
Nginx'in en önemli özelliklerinden biri "C10K" sorununa —aynı anda 10.000 bağlantı yönetme sorununa— çok önce çözüm getirmiş olmasıdır. Her bağlantı için ayrı bir işlem (process) veya iş parçacığı (thread) açmak yerine, tek bir worker process içinde asenkron olarak onlarca bağlantıyı yönetir.
Temel Özellikler
- Yüksek Eşzamanlılık: Asenkron olay döngüsü sayesinde düşük bellek kullanımıyla binlerce bağlantıyı yönetir.
- Reverse Proxy & Load Balancer: Backend uygulamalar önüne geçerek yük dengeleme yapar, round-robin ve least_conn algoritmalarını destekler.
- SSL/TLS Terminasyonu: HTTPS trafiğini işleyerek backend'e HTTP olarak iletir.
- Gzip / Brotli Sıkıştırma: Bant genişliği tüketimini azaltarak sayfa yüklenme hızını artırır.
- HTTP/2 ve HTTP/3 Desteği: Modern tarayıcılarla en hızlı iletişimi sağlar.
- Statik Dosya Sunumu: CSS, JS, resim gibi dosyaları son derece hızlı sunar.
- FastCGI / uWSGI / SCGI Desteği: PHP-FPM, Python ve diğer backend'lerle sorunsuz entegre olur.
- İçerik Önbellekleme: Proxy cache ile backend yükünü dramatik biçimde düşürür.
Sistem Gereksinimleri
Desteklenen İşletim Sistemleri
- Ubuntu 20.04, 22.04, 24.04 LTS
- Debian 11 (Bullseye), 12 (Bookworm)
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- RHEL 8, 9
- CentOS Stream 8, 9
Minimum Donanım Gereksinimleri
- CPU: 1 vCPU (üretim ortamı için 2+ önerilir)
- RAM: 512 MB (üretim için 1 GB+)
- Disk: 10 GB boş alan
- Ağ: Statik IP adresi önerilir
İşletim Sistemine Göre Kurulum
🟠 Ubuntu 22.04 Üzerinde Nginx Kurulumu
1. Sistemi Güncelleyin
sudo apt update && sudo apt upgrade -y
2. Nginx'i Kurun
sudo apt install nginx -y
3. Servisi Başlatın ve Otomatik Başlatmayı Aktifleştirin
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
4. UFW Güvenlik Duvarını Yapılandırın
sudo ufw allow 'Nginx Full'
sudo ufw status
5. Kurulumu Doğrulayın
nginx -v
curl -I http://localhost
🔵 AlmaLinux 9 Üzerinde Nginx Kurulumu
1. Sistemi Güncelleyin
sudo dnf update -y
2. Nginx'in Resmi Deposunu Ekleyin
sudo tee /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
3. Nginx'i Kurun
sudo dnf install nginx -y
4. Servisi Başlatın ve Aktifleştirin
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
5. Firewall Kurallarını Ekleyin
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Nginx Yapılandırması
Ana Yapılandırma Dosyası (nginx.conf)
Nginx'in ana yapılandırma dosyası /etc/nginx/nginx.conf konumundadır. Performans için temel ayarlar:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
use epoll;
multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
gzip on;
gzip_vary on;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml;
include /etc/nginx/conf.d/*.conf;
}
Server Block (Virtual Host) Yapılandırması
Ubuntu için /etc/nginx/sites-available/example.com, AlmaLinux için /etc/nginx/conf.d/example.com.conf dosyasını oluşturun:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
}
location ~ /\.ht {
deny all;
}
}
Ubuntu'da Site Etkinleştirme
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Systemd ile Nginx Yönetimi
sudo systemctl start nginx # Başlat
sudo systemctl stop nginx # Durdur
sudo systemctl restart nginx # Yeniden başlat
sudo systemctl reload nginx # Yapılandırmayı yeniden yükle (kesintisiz)
sudo nginx -t # Yapılandırma sözdizimini test et
sudo nginx -T # Tüm yapılandırmayı ekrana döküm yap
Sık Karşılaşılan Sorunlar
- 403 Forbidden: Dosya izinlerini kontrol edin; web dizini
www-data(Ubuntu) veyanginx(AlmaLinux) kullanıcısına erişilebilir olmalı. - 502 Bad Gateway: PHP-FPM socket yolunu kontrol edin ve
systemctl status php8.3-fpmile servisin çalıştığını doğrulayın. - Port 80 zaten kullanımda:
ss -tlnp | grep :80komutuyla çakışan servisi bulun. - SELinux engeli (AlmaLinux):
sudo setsebool -P httpd_can_network_connect 1komutunu çalıştırın. - nginx -t yapılandırma hatası: Eksik noktalı virgül veya kapanmamış süslü parantez arayın.
İlgili Makaleler
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!