sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa Web Sunucuları Nginx Kurulumu Nginx Nasıl Kurulur? Ubuntu 22.04 ve AlmaLinux ...
🟢 Nginx Kurulumu

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.

📅 31 Ocak 2025 👁 50 görüntülenme ⏱ 3 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

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) veya nginx (AlmaLinux) kullanıcısına erişilebilir olmalı.
  • 502 Bad Gateway: PHP-FPM socket yolunu kontrol edin ve systemctl status php8.3-fpm ile servisin çalıştığını doğrulayın.
  • Port 80 zaten kullanımda: ss -tlnp | grep :80 komutuyla çakışan servisi bulun.
  • SELinux engeli (AlmaLinux): sudo setsebool -P httpd_can_network_connect 1 komutunu çalıştırın.
  • nginx -t yapılandırma hatası: Eksik noktalı virgül veya kapanmamış süslü parantez arayın.

İlgili Makaleler

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al
Etiketler: #nginx #ubuntu #almalinux #web-sunucusu

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.