Site icon Netopsiyon Online

Ubuntu Üzerine NGINX ve Apache Kurulumu

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

NGINX


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

Apache’yi yüklemek için aşağıdaki komutları çalıştırın:

sudo apt update
sudo apt install apache2 -y

Apache’yi başlatın ve sistemde otomatik başlamasını sağlayın:

sudo systemctl start apache2
sudo systemctl enable apache2

Apache’nin çalışıp çalışmadığını kontrol etmek için:

sudo systemctl status apache2

Tarayıcınızdan aşağıdaki adresi ziyaret ederek Apache’nin çalıştığını doğrulayabilirsiniz:

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:

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

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:

sudo apt update
sudo apt install nginx -y

NGINX’i başlatın ve sistemde otomatik başlamasını sağlayın:

sudo systemctl start nginx
sudo systemctl enable nginx

NGINX’in çalışıp çalışmadığını kontrol etmek için:

sudo systemctl status nginx

Tarayıcınızdan aşağıdaki adresi ziyaret ederek NGINX’in çalıştığını doğrulayabilirsiniz:

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:

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:

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:

sudo nano /etc/nginx/sites-available/default

Aşağıdaki satırları ekleyin:

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:

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!

Exit mobile version