30 Nisan 2025 - 15:04
Ubuntu Üzerine NGINX ve Apache Kurulumu Görseli
Sunucu Yönetimi

Ubuntu Üzerine NGINX ve Apache Kurulumu

Yorumlar
Web sunucuları, web sitelerini ve uygulamalarını barındırmak için kullanılan temel bileşenlerden biridir. En popüler iki web sunucusu Apache HTTP Server ve NGINX’tir. Bu makalede, Ubuntu üzerine Apache ve NGINX’in nasıl kurulacağını, yapılandırmalarını ve performans açısından nasıl karşılaştırıldıklarını ele alacağım.

1. Apache ve NGINX Nedir?

Apache HTTP Server

  • İlk sürüm: 1995
  • Geliştirici: Apache Software Foundation
  • Modüler mimari: Ekstra işlevsellik sağlayan modülleri destekler (mod_rewrite, mod_ssl, mod_proxy vb.).
  • İşlem tabanlı (Process-driven) model: Her isteği ayrı bir işleme atayarak çalışır.
  • .htaccess desteği: Kullanıcı bazlı yapılandırmalar sağlar.
  • PHP ve diğer dinamik diller için dahili destek sunar.

NGINX

  • İlk sürüm: 2004
  • Geliştirici: Igor Sysoev
  • Olay tabanlı (Event-driven) model: Yüksek eşzamanlılık sağlar.
  • Daha az kaynak tüketimi: CPU ve RAM kullanımında Apache'ye kıyasla daha verimlidir.
  • Ters proxy, yük dengeleme ve statik içerik sunma konusunda daha başarılıdır.
  • Apache’den farklı olarak .htaccess desteği bulunmaz.

2. Apache Web Server Kurulumu (Ubuntu 22.04/20.04)

Apache'yi yüklemek için aşağıdaki komutları çalıştırın:
BASH
sudo apt update
sudo apt install apache2 -y
Apache'yi başlatın ve sistemde otomatik başlamasını sağlayın:
BASH
sudo systemctl start apache2
sudo systemctl enable apache2
Apache’nin çalışıp çalışmadığını kontrol etmek için:
BASH
sudo systemctl status apache2
Tarayıcınızdan aşağıdaki adresi ziyaret ederek Apache’nin çalıştığını doğrulayabilirsiniz:
PLAINTEXT
http://localhost
Eğer uzak bir sunucudaysanız, sunucu IP adresinizi kullanın.

Apache Performans Ayarları

Varsayılan yapılandırmayı optimize etmek için /etc/apache2/apache2.conf dosyasına aşağıdaki ayarları ekleyebilirsiniz:
BASH
<IfModule mpm_prefork_module>
    StartServers          4
    MinSpareServers       2
    MaxSpareServers       5
    MaxRequestWorkers     150
    MaxConnectionsPerChild 3000
</IfModule>
Bu ayarlar, daha iyi kaynak yönetimi sağlar ve Apache’nin yoğun trafik altında çökmesini önler. Güvenlik duvarında (UFW) Apache için HTTP ve HTTPS trafiğini açalım:
BASH
sudo ufw allow 'Apache Full'

3. NGINX Web Server Kurulumu (Ubuntu 22.04/20.04)

NGINX'i yüklemek için aşağıdaki komutları çalıştırın:
BASH
sudo apt update
sudo apt install nginx -y
NGINX'i başlatın ve sistemde otomatik başlamasını sağlayın:
BASH
sudo systemctl start nginx
sudo systemctl enable nginx
NGINX’in çalışıp çalışmadığını kontrol etmek için:
BASH
sudo systemctl status nginx
Tarayıcınızdan aşağıdaki adresi ziyaret ederek NGINX’in çalıştığını doğrulayabilirsiniz:
PLAINTEXT
http://localhost
Eğer uzak bir sunucudaysanız, sunucu IP adresinizi kullanın.

NGINX Performans Ayarları

NGINX’in varsayılan ayarlarını optimize etmek için /etc/nginx/nginx.conf dosyasını açın ve şu satırları ekleyin:
BASH
worker_processes auto;
worker_connections 1024;
keepalive_timeout 65;
gzip on;
Bu ayarlar, daha iyi performans ve düşük gecikme süresi sağlar. Güvenlik duvarında (UFW) NGINX için HTTP ve HTTPS trafiğini açalım:
BASH
sudo ufw allow 'Nginx Full'

4. Apache ve NGINX Karşılaştırması

Özellik Apache NGINX
Performans İşlem tabanlı model, yüksek yükte yavaşlayabilir Olay tabanlı model, yüksek eşzamanlılık
Kullanım Alanı Küçük ve orta ölçekli projelerde yaygın Yüksek trafikli siteler, ters proxy
Esneklik Modüler yapı, .htaccess desteği Daha az modüler, merkezi konfigürasyon
Kaynak Kullanımı Daha fazla RAM ve CPU kullanabilir Daha düşük RAM ve CPU kullanımı
Ters Proxy Destekler, ancak genellikle önerilmez Yüksek verimli ters proxy desteği

5. Apache ve NGINX’i Birlikte Kullanmak

Apache ve NGINX’i birlikte kullanarak NGINX’i ters proxy olarak yapılandırabiliriz. Böylece, statik içerikler NGINX tarafından hızlı bir şekilde sunulurken, dinamik içerikler Apache tarafından işlenir. NGINX’i ters proxy olarak yapılandırmak için aşağıdaki adımları uygulayın:
BASH
sudo nano /etc/nginx/sites-available/default
Aşağıdaki satırları ekleyin:
NGINX
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
NGINX yapılandırmasını yeniden yükleyin:
BASH
sudo systemctl restart nginx
Böylece, Apache 8080 portunda çalışırken NGINX 80 portunda isteği karşılayıp Apache’ye yönlendirecektir. NGINX ve Apache, farklı kullanım alanlarına sahip güçlü web sunucularıdır. Apache, .htaccess gibi esnek yapılandırma seçenekleri sunarken, NGINX yüksek eşzamanlılık ve düşük kaynak kullanımıyla ön plana çıkar. Ters proxy olarak birlikte kullanıldığında, performans açısından en iyi sonucu elde edebilirsiniz. Eğer düşük kaynak tüketimi ve yüksek performans istiyorsanız NGINX, modüler yapı ve genişletilebilirlik istiyorsanız Apache sizin için daha iyi bir seçenek olabilir. Her iki sunucuyu denedikten sonra projelerinize en uygun olanı seçebilirsiniz!

Benzer Yazılar

Yorumlar ()

Henüz yorum yok. İlk yorum yapan sen ol!

Yorum Yap