Nginx Nedir ?

Nginx, bir web sunucusudur. Web sunucusu, internet üzerinden bir web sitesine erişim isteyen bir bilgisayarın isteklerini yönetir ve isteğe göre web sitesine ait verileri gönderir. Nginx, özellikle çok yüksek trafik alan web siteleri için tasarlandı ve performansıyla diğer popüler web sunucularından daha iyidir.

Nginx, açık kaynak kodlu bir yazılımdır ve ücretsiz olarak kullanılabilir. Ayrıca, Nginx’in yapısı nedeniyle, birçok sunucu üzerinde birden fazla web sitesini çalıştırmak için kullanılabilir. Nginx, aynı zamanda bir reverse proxy olarak da kullanılabilir ve bu sayede bir web sunucusunun yükünü azaltarak performansını arttırır.

Nginx, genellikle Linux, Unix ve macOS gibi işletim sistemlerinde kullanılır, ancak Windows işletim sisteminde de çalıştırılabilir. Nginx, HTTP ve HTTPS protokolleriyle çalışır ve web sitelerine erişim ve veri aktarımı için kullanılır.

 

Nginx Özellikleri

Nginx, aşağıdaki özelliklerle öne çıkmaktadır:

  1. Yüksek performans: Nginx, diğer popüler web sunucularına göre daha yüksek performansa sahiptir.
  2. Çoklu web siteleri desteği: Nginx, birçok web sitesini aynı sunucuda çalıştırabilir.
  3. Reverse proxy desteği: Nginx, bir reverse proxy olarak da kullanılabilir ve bu sayede bir web sunucusunun yükünü azaltarak performansını arttırır.
  4. HTTP ve HTTPS desteği: Nginx, HTTP ve HTTPS protokolleriyle çalışır ve web sitelerine erişim ve veri aktarımı için kullanılır.
  5. Load balancing desteği: Nginx, bir load balancer olarak da kullanılabilir ve bu sayede birçok sunucu üzerinde yükleri dağıtarak performansı arttırır.
  6. Çoklu dil desteği: Nginx, birçok dil ile uyumlu çalışır ve bu sayede farklı dil kullanan web siteleri için de kullanılabilir.
  7. Ölçeklenebilir yapı: Nginx, ölçeklenebilir yapısı nedeniyle büyük trafik alan web siteleri için ideal bir seçimdir.
  8. Açık kaynak kodlu: Nginx, açık kaynak kodlu bir yazılımdır ve ücretsiz olarak kullanılabilir.

 

Nginx Avantajları Nelerdir ?

Nginx, aşağıdaki avantajları nedeniyle popüler bir web sunucusudur:

  1. Yüksek performans: Nginx, diğer popüler web sunucularına göre daha yüksek performansa sahiptir ve bu sayede web sitelerine erişim hızını arttırır.
  2. Düşük kaynak tüketimi: Nginx, diğer web sunucularına göre daha az kaynak tüketir ve bu sayede sunucu üzerinde daha fazla web sitesi çalıştırılabilir.
  3. Reverse proxy desteği: Nginx, bir reverse proxy olarak da kullanılabilir ve bu sayede bir web sunucusunun yükünü azaltarak performansını arttırır.
  4. Load balancing desteği: Nginx, bir load balancer olarak da kullanılabilir ve bu sayede birçok sunucu üzerinde yükleri dağıtarak performansı arttırır.
  5. Ölçeklenebilir yapı: Nginx, ölçeklenebilir yapısı nedeniyle büyük trafik alan web siteleri için ideal bir seçimdir.
  6. Açık kaynak kodlu: Nginx, açık kaynak kodlu bir yazılımdır ve ücretsiz olarak kullanılabilir. Bu sayede kullanıcılar tarafından da geliştirilebilir ve özelleştirilebilir.
  7. Geniş dil desteği: Nginx, birçok dil ile uyumlu çalışır ve bu sayede farklı dil kullanan web siteleri için de kullanılabilir.
  8. Güvenlik önlemleri: Nginx, güvenlik önlemleri nedeniyle güvenli bir web sunucusudur ve bu sayede web sitelerine erişimde güvenlik açıklarına karşı koruma sağlar.

 

Nginx Güvenli midir ? Ne gibi Önlemler Alabilirim ?

Nginx, güvenlik açısından diğer popüler web sunucularına benzerdir ve güvenlik önlemlerine sahiptir. Ancak, her web sunucusu gibi Nginx de bazı güvenlik açıklarına sahip olabilir ve bu açıkların önlenmesi için güncellemeler yayınlanır. Bu nedenle, Nginx’in güncel bir sürümünü kullanarak güvenlik açıklarını minimize etmek mümkündür.

Ayrıca, Nginx’in güvenliğini arttırmak için aşağıdaki önlemler de alınabilir:

  1. Güvenli bir parola seçimi: Nginx yönetim paneli için güçlü bir parola seçimi yapılması önemlidir.
  2. SSL/TLS sertifikalarının kullanımı: Nginx, SSL/TLS sertifikaları kullanarak veri aktarımının güvenliğini sağlayabilir.
  3. Güncel sürümün kullanımı: Nginx’in güncel bir sürümünü kullanarak güvenlik açıklarını minimize etmek mümkündür.
  4. Açık portları kapatma: Nginx’in kullanmadığı portları kapatarak güvenlik açıklarını minimize etmek mümkündür.
  5. İzinlerin düzgün yapılandırılması: Nginx’in çalıştırdığı dosyalar ve klasörler için düzgün izinler verilmesi güvenlik açıklarını minimize etmeye yardımcı olabilir.
  6. Güncelleme yükleme: Nginx’in güncelleme yükleme işlemleri de güvenlik açıklarını minimize etmeye yardımcı olabilir.

Bu önlemler, Nginx’i daha güvenli hale getirmeye yardımcı olur. Ancak, web sunucusu güvenliği sadece bu önlemlerle sınırlı değildir ve güvenlik açıklarının önlenmesi için daha fazla önlem alınması gerekebilir.

 

Nginx Nasıl Kurulur ?

Nginx, farklı işletim sistemlerinde farklı yöntemlerle kurulur. Aşağıdaki adımlar, Nginx’in Ubuntu 20.04 işletim sisteminde nasıl kurulacağını gösterir:

  1. Sisteminizdeki paketlerin listesini güncelleyin:
  1. Nginx’i sisteminize kurun:
  1. Nginx’in çalışıp çalışmadığını kontrol edin:
  1. Nginx’i otomatik olarak başlatılır hale getirin:

Bu adımları izleyerek, Nginx’i Ubuntu 20.04 işletim sisteminde kurabilirsiniz. Diğer işletim sistemlerinde kurulum işlemleri de benzer şekilde yapılır, ancak kurulum komutları farklı olabilir.

Nginx Yapılandırma

Nginx’in yapılandırma dosyaları, bir metin dosyası olarak yazılır ve Nginx’in özel bir sözdizimi kullanır. Bu sözdizimi, Nginx’in yapılandırmasının nasıl yapılacağını açıklar ve aşağıdaki temel bileşenleri içerir:

  • Direktifler: Bu, Nginx’in ne yapacağını belirten komutlardır. Direktifler, genellikle çift tırnak içinde yazılır ve bir noktalı virgül ile biter. Örneğin: listen 80;
  • Etiketler: Bu, direktiflerin hangi koşullarda uygulanacağını belirten anahtar kelimelerdir. Örneğin: server, location, if.
  • Parametreler: Bu, direktiflerin nasıl uygulanacağını belirten değerlerdir. Örneğin: listen 80 direktifinin parametresi, Nginx’in dinleyeceği port numarasıdır.
  • Yorumlar: Bu, yapılandırma dosyasında açıklama olarak kullanılan metindir. Yorumlar, genellikle # işaretiyle başlar ve satır sonuna kadar devam eder. Örneğin: # This is a comment.

Aşağıda, Nginx’in yapılandırma dosyasında kullanılabilecek bazı direktiflerden örnekler verilmiştir:

  • listen: Nginx’in hangi IP adresi ve port üzerinden istekleri dinleyeceğini belirtir. Örneğin: listen 80;
  • server_name: Web sunucusu tarafından desteklenen domain adlarını belirtir. Örneğin: server_name example.com www.example.com;
  • root: Web sitenin dosyalarının bulunduğu dizinin yolunu belirtir. Örneğin: root /var/www/example.com;
  • index: Web sunucusunun varsayılan sayfası olarak gösterilecek dosyanın adını belirtir. Örneğin: index index.html;
  • location: İsteklerin nasıl işleneceğini belirtir. Örneğin: location / { ... }
  • include: Başka bir yapılandırma dosyasını dahil etmeyi sağlar. Örneğin: include /etc/nginx/conf.d/*.conf;
  • error_page: Özel bir hata sayfası tanımlamağı sağlar. Örneğin: error_page 404 /404.html;
  • add_header: HTTP isteklerine veya cevaplarına özel başlık eklemeği sağlar. Örneğin: add_header X-Frame-Options "SAMEORIGIN";
  • proxy_pass: Bir proxy sunucusuna istekleri yönlendirmeği sağlar. Örneğin: proxy_pass http://localhost:3000;
  • rewrite: İsteklerin URL’lerini değiştirmeği sağlar. Örneğin: rewrite ^/old_path /new_path permanent;
  • auth_basic: HTTP bazı yetkilendirme mekanizmasını etkinleştirmeği sağlar. Örneğin: auth_basic "Restricted Area";

Bu sadece birkaç örnekti, ancak Nginx’in yapılandırma dosyalarında çok daha fazla direktif ve etiket kullanılabilir.

 

Nginx ile reverse proxy ve load balancing nasıl yapılır ?

NGINX’i reverse proxy veya load balancer olarak kullanmak için, NGINX yapılandırma dosyalarını düzenlemeniz gerekir. Bu dosyalar, NGINX’in nasıl çalışacağını belirler.

Reverse proxy yapılandırması, hedef sunucu adresini ve port numarasını belirtmenizi gerektirir. Örneğin, aşağıdaki yapılandırma, istemcilerin http://example.com/app adresine bağlanmaları durumunda, istekleri http://backend.example.com:8080 adresine yönlendirir:

Load balancing yapılandırması, hedef sunucuların listesini ve bu sunucuların yük dağılımını belirtmenizi gerektirir. Örneğin, aşağıdaki yapılandırma, istemcilerin http://example.com adresine bağlanmaları durumunda, istekleri round-robin şeklinde dört farklı hedef sunucuya dağıtır:
Bu örnek yapılandırmalar sadece birkaç özelliği gösterir. NGINX’in reverse proxy ve load balancing özellikleri hakkında daha fazla bilgi için, NGINX dokümantasyonunu inceleyebilirsiniz.

Bir cevap yazın