Nginx Server Config Dosyasındaki Ayarlar: Detaylı Açıklamalar

Nginx, yüksek performanslı ve ölçeklenebilir bir web sunucusu olarak günümüzde sıklıkla tercih edilmektedir. Nginx'in gücünü tam olarak kullanabilmek için, yapılandırma dosyasındaki ayarları anlamak ve doğru bir şekilde yapılandırmak çok önemlidir. Bu yazımızda, Nginx server config dosyasındaki temel ayarları detaylı olarak açıklayacak ve her bir ayarın ne anlama geldiğini ve ne işe yaradığını inceleyeceğiz.

Nginx Konfigürasyon Dosyasının Yapısı

Nginx konfigürasyon dosyaları, genellikle /etc/nginx/nginx.conf veya /etc/nginx/conf.d dizini altında bulunur. Temel olarak, ana yapılandırma dosyası (nginx.conf) ve sanal sunucu yapılandırmalarını içeren dosyalar (conf.d dizini içindeki dosyalar) olarak iki ana bölüme ayrılır. Bu dosyalar, direktifler (directives) ve bloklar (blocks) kullanılarak yapılandırılır.

Temel Direktifler ve Bloklar

  1. user Direktifi:

    • Tanım: Nginx worker süreçlerinin hangi kullanıcı altında çalışacağını belirtir.

    • Örnek: user www-data; (Çoğu Linux dağıtımında www-data kullanıcısı yaygındır.)

    • Önemi: Güvenlik için önemlidir. Nginx'in yetkisiz erişimlere karşı korunmasını sağlar.

  2. worker_processes Direktifi:

    • Tanım: Nginx'in kaç worker sürecini başlatacağını belirtir.

    • Örnek: worker_processes auto; (Auto seçeneği, CPU çekirdek sayısına göre otomatik olarak ayarlanır.)

    • Önemi: Performans için önemlidir. İş yükünü birden fazla süreç arasında dağıtır.

  3. pid Direktifi:

    • Tanım: Nginx ana sürecinin PID numarasını içeren dosyanın yolunu belirtir.

    • Örnek: pid /run/nginx.pid;

    • Önemi: Nginx süreçlerini yönetmek ve izlemek için önemlidir.

  4. events Bloğu:

    • Tanım: Nginx'in event işleme mekanizması ile ilgili ayarları içerir.

    • Örnek:

    events {
        worker_connections 1024;
        use epoll;
    }
    Use code with caution.Nginx
    • worker_connections: Her worker sürecinin aynı anda kaç bağlantıyı işleyebileceğini belirtir.

    • use: Event işleme mekanizmasını belirtir. epoll (Linux için), kqueue (macOS için) gibi seçenekler vardır.

    • Önemi: Yüksek trafik yönetimi ve performans için önemlidir.

  5. http Bloğu:

    • Tanım: HTTP ile ilgili genel ayarları içerir.

    • Örnek:

    http {
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        sendfile on;
        keepalive_timeout 65;
        gzip on;
        include /etc/nginx/conf.d/*.conf;
    }
    • include /etc/nginx/mime.types;: MIME tiplerini içeren dosyayı belirtir.

    • default_type application/octet-stream;: Varsayılan MIME tipini belirtir.

    • sendfile on;: Çekirdek düzeyinde dosya göndermeyi aktif eder (daha hızlı).

    • keepalive_timeout 65;: Keep-alive bağlantı süresini belirtir.

    • gzip on;: Gzip sıkıştırmayı aktif eder (performansı artırır).

    • include /etc/nginx/conf.d/*.conf;: Sanal sunucu konfigürasyonlarını içeren dosyaları dahil eder.

    • Önemi: HTTP trafiği ve genel web sunucu ayarları için kritik öneme sahiptir.

  6. server Bloğu:

    • Tanım: Sanal sunucuların (virtual hosts) ayarlarını içerir. Birden fazla server bloğu olabilir.

    • Örnek:

    server {
        listen 80;
        server_name example.com www.example.com;
        root /var/www/example.com;
        index index.html index.htm index.php;
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }
    
    }
    Use code with caution.Nginx
    • listen 80;: Sunucunun hangi portu dinleyeceğini belirtir (80 HTTP için).

    • server_name example.com www.example.com;: Hangi alan adları için geçerli olduğunu belirtir.

    • root /var/www/example.com;: Web sitenin dosyalarının bulunduğu kök dizini belirtir.

    • index index.html index.htm index.php;: Varsayılan index dosyalarını belirtir.

    • location / {...}: URL isteklerini nasıl işleyeceğini belirtir.

    • try_files $uri $uri/ /index.php?$args;: URI'ye göre dosya arar ve bulunamazsa index.php'ye yönlendirir.

    • location ~ \.php$ {...}: PHP dosyalarını nasıl işleyeceğini belirtir.

    • include snippets/fastcgi-php.conf;: PHP işleme için gerekli ayarları içeren dosyayı dahil eder.

    • fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;: PHP-FPM'e istekleri yönlendirir.

    • Önemi: Web sitenizin doğru şekilde yayınlanması ve HTTP isteklerinin yönlendirilmesi için önemlidir.

  7. location Bloğu:

    • Tanım: URL'ye göre farklı davranışlar belirlemenizi sağlar.

    • Örnekler:

      • location / { ... } : Tüm istekler için.

      • location /images { ... } : /images dizini ve altı için.

      • location ~ \.(jpg|png|gif)$ { ... } : jpgpnggif uzantılı dosyalar için.

      • location = /favicon.ico { ... } : Sadece /favicon.ico için.

    • Önemi: Web sitenizin farklı bölümleri için özel ayarlar yapmanızı sağlar.

Diğer Önemli Direktifler:

  • access_log: Erişim kayıtlarının tutulacağı dosyayı belirtir.

  • error_log: Hata kayıtlarının tutulacağı dosyayı belirtir.

  • ssl_certificate / ssl_certificate_key: SSL sertifika dosyalarının yollarını belirtir.

  • proxy_pass: Reverse proxy ayarlarını belirtir.

  • rewrite: URL yeniden yazma kurallarını tanımlar.

  • limit_req_zone / limit_req: İstek sınırlama (rate limiting) ayarlarını yapar.

ehost.com.tr ve Nginx:

ehost.com.tr olarak, yüksek performanslı hosting hizmetlerimizde Nginx web sunucusunu kullanmaktayız. Bu sayede, web siteleriniz daha hızlı ve verimli bir şekilde çalışmaktadır. Teknik uzman ekibimiz, Nginx yapılandırması konusunda size her zaman destek olmaya hazırdır.

Sonuç:

Nginx server config dosyasındaki ayarları anlamak, web sunucunuzu en iyi şekilde kullanmanın anahtarıdır. Bu yazımızda, temel ayarları detaylı olarak açıkladık. Bu bilgilerle, Nginx konfigürasyonunuzu daha iyi yönetebilir, web sitenizin performansını ve güvenliğini artırabilirsiniz.

Harekete Geçme Çağrısı:

  • Nginx ayarlarınızı optimize etmek için bu yazımızı rehber olarak kullanın.

  • Nginx ve web hosting konusunda daha fazla bilgi almak için blogumuzu takip edin.

  • ehost.com.tr olarak, profesyonel hosting ve sunucu çözümlerimizle yanınızdayız.

paylaş:

diğer yazlıarımız

Görüşme başlat
Merhaba 👋
Nasıl yardımcı olabilirim?