Nginx (“motor X” olarak telaffuz edilir) Apache’ye bir alternatiftir ve dünyadaki en popüler HTTP web sunucularından biri olarak kabul edilir. Apache’nin aksine, Nginx daha az kaynak tüketme eğilimindedir ve sunucu yanıt verebilirliğini geliştirir. Olay odaklı tasarımı, onu kaynak dostu yapan şeydir.
Her şeyden önce, yöneticilerin gelişmiş yapılandırmalar kurmasına olanak tanır ve yüksek miktarda eşzamanlı bağlantıyla başa çıkabilir. Nginx, bir HTTP web sunucusu için uygun olmasının yanı sıra ters proxy, yük dengeleyici ve standart posta sunucusu olarak da çalışır.
Bu yazıda öğreneceksiniz CentOS 7’de Nginx nasıl kurulur ve yapılandırılır.
Önkoşullar
- Bir CentOS kendi kendini yöneten sunucu veya VM
- Bir Etki Alanı. Nginx web sunucunuza bir etki alanı bağlamanız gerekecek
- sudo veya kök ayrıcalıklar [rootANormUser ~]
- SELinux doğru şekilde kuruldu
CentOS 7’de Nginx Nasıl Kurulur?
Genel olarak, CentOS, barındırma endüstrisinde tercih edilen dağıtım paketidir. Şu anda CentOS 8 en son sürümken, CentOS 7 2024 yılına kadar destekleniyor.
Aşağıdaki yapılandırma prosedürü, Nginx’i CentOS 7’de kurmak için gerekli adımları detaylandırır.
CentOS 8 kurulum talimatları için lütfen CentOS 8’de Nginx Kurulumu bölümünü okuyun.
1. Adım: Depo Paket Listelerini Güncelleyin
Bunu yapmak için aşağıdaki komutu çalıştırın:
sudo yum -y update
-y
isteğe bağlı bir parametredir. Onay sorularından kaçınmaya yarar. Fark edeceğiniz gibi çok sık kullanacağız. Bu parametreyi kullanmazsanız, komutlarınızı onaylamanız istenecektir.
2. Adım: Enterprise Linux için Ekstra Paketler Kurun (EPEL)
Nginx, CentOS paketi ile gelen standart depolarda mevcut değildir, bu nedenle sunucunuza EPEL deposunu yüklemeniz gerekecektir. EPEL’in kullanımı ücretsizdir ve Yum ile kurulacak çok sayıda açık kaynaklı paket sağlar.
EPEL’i yüklemek için Yum paket yöneticisini kullanarak aşağıdaki komutu çalıştırın:
sudo yum install -y epel-release
3. Adım: Nginx’i kurun
İkinci adım, Nginx deposunu sunucunuza ekledi. Şimdi, aşağıdaki yum komutunu çalıştırarak Nginx’i kurabilirsiniz:
sudo yum –y install nginx
Adım 4: Nginx Hizmetini Başlatın
Nginx örneğiniz yüklendi, ancak otomatik olarak başlamayacak.
Nginx’i başlatmak için şunu çalıştırın:
sudo systemctl start nginx
Enter tuşuna bastıktan sonra, bir dönüş değeri almazsınız. Ancak, Nginx başlamış olmalıydı. Durumunu kontrol etmek için şunu çalıştırın:
sudo systemctl status nginx
Okuyan yeşil bir metin parçası olmalıdır. ‘etkin (çalışıyor).’ Bulamıyorsanız, Nginx örneğiniz başarıyla başlamamış olabilir.
Not: Halihazırda çalışan bir Apache sunucunuz varsa, Nginx’i başlatmadan önce onu devre dışı bırakmanız gerekir. Kullan sudo service httpd stop
emretmek. Apache’yi devre dışı bırakmanın, şu anda barındırılan tüm web sitelerini kapatacağını unutmayın.
Apache’yi devre dışı bıraktınız, ancak yine de sunucu yeniden başlatıldığında otomatik olarak başlayabilir. Aşağıdaki komutu çalıştırarak otomatik başlatmaları devre dışı bırakın:
sudo systemctl disable httpd
Adım 5: Nginx’i Önyükleme Sırasında Başlayacak Şekilde Yapılandırın
Çoğu yönetici, sunucu her yeniden başladığında NGINX’in otomatik olarak başladığından emin olmak isteyecektir. Bunu ayarlamak için şunu çalıştırın:
sudo systemctl enable nginx
6. Adım: Güvenlik Duvarını Trafiğe İzin Verecek Şekilde Yapılandırın
CentOS 7, güvenlik duvarlarını varsayılan olarak etkinleştirir ve 80 ve 443 numaralı bağlantı noktalarına erişimi engeller. Nginx’ten gelen tüm HTTPS ve HTTP paketlerini engeller.
HTTP ve HTTPS trafiğine izin vermek için aşağıdaki komutları çalıştırın:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
Her komuttan sonra şunu görmelisiniz: success
komutun doğru yürütüldüğünü gösterir.
7. Adım: Nginx Kurulumunu Doğrulayın
Nginx’in düzgün çalışıp çalışmadığını kontrol etmenin en kolay yolu, sunucunuzun genel IP adresini ziyaret etmektir. Sadece web tarayıcınızı açın ve ziyaret edin http://server_IP_or_domain_name/
Öncelikle, sunucunuzun genel IP adresini bulun.
ip a
IP adresimiz 192.168.122.1/24. IP adresinizi kopyalayın ve tarayıcınıza yapıştırın. Bu yüklemeli Nginx’e hoş geldiniz sayfa.
‘Test başarısız oldu’ Hatası Nasıl Çözülür?
Eğer bir ‘test başarısız’ nginx.conf dosyası için bir hata mesajı alıyorsanız, bir IP adresi sorunuyla karşı karşıya olabilirsiniz.
Nginx hizmeti, varsayılan olarak IPv4 ve IPv6’yı dinler. Sunucunuz IPv6’yı desteklemiyorsa testiniz başarısız olur. Ancak bu, ana yapılandırma dosyası değiştirilerek düzeltilebilir.
Ana yapılandırma dosyasını açın, /etc/nginx/nginx.conf. Aşağıdaki satırı bulun ve yorumlayın:
listen [::]:80 default_server;
Satırın başına ‘#’ eklemeniz yeterlidir. Bu şöyle görünmelidir:
# listen [::]:80 default_server;
Yaptığınız değişiklikleri kaydedin ve Nginx hizmetini yeniden yükleyin.
sudo systemctl reload nginx
Tarayıcınızda sunucunuzun IP adresine göz atın. Varsayılan Nginx test sayfasını görmelisiniz.
Nginx Yapılandırma Dosyaları ve Kökü
Kesinlikle Nginx yapılandırma dosyalarının konumunu ve varsayılan Nginx sunucusu kök dizinini bilmeniz gerekecek.
Ek Sunucu Blokları
Apache’de yöneticiler, birden çok web sitesini çalıştırmak için sanal konaklar kullanır. Nginx ile birden fazla web sitesini tek bir sunucuda çalıştırmak, sunucu blokları ile gerçekleştirilir.
.conf dosya uzantılı yeni yapılandırma dosyaları oluşturularak ek sunucu blokları eklenir. Bu dosyaları içine yerleştirin /etc/nginx/conf.d ve Nginx her başladığında yüklenecekler.
Varsayılan Nginx Sunucu Kökü
Varsayılan Nginx sunucusu kök dizini /usr/paylaş/nginx. Bu, adresinde bulunan varsayılan sunucu bloğu yapılandırma dosyasında belirtilir. /etc/nginx/conf.d/default.conf.
Web dosyalarını içeren varsayılan sunucu belgesi kök dizini usr/share/nginx/html.
Küresel Yapılandırma
Genel yapılandırmalar, şu adreste bulunan ana Nginx yapılandırma dosyası değiştirilerek değiştirilebilir: /etc/nginx/nginx.conf. Bu yapılandırma dosyası bağlamlara bölünmüştür. Varsayılan olarak, üç (3) bağlam tanımlayabilirsiniz.
- Olaylar Nginx’in genel olarak bağlantıları nasıl ele aldığını tanımlayan genel ayarlardır.
- HTTP sunucunun HTTP ve HTTPS bağlantılarını nasıl ele aldığını tanımlar.
- Sunucu HTTP bağlamında tanımlanır. Sunucu bağlantı noktalarını, belge kökünü vb. belirtir.
Her zaman ek bağlamlar ekleyebilirsiniz.
Nginx’i Yönetme – Ortak Görevler
Nginx’i Durdur
Bir Nginx sunucusunu durdurmak için şunu çalıştırın:
sudo systemctl stop nginx
Nginx’i yeniden başlat
Nginx hizmetini yeniden başlatmak için şunu çalıştırın:
sudo systemctl restart nginx
Nginx’i yeniden yükle
Nginx ana yapılandırma değişikliklerinde bazı değişiklikler yaptıysanız. Değişiklikleri yaymak için sunucuyu yeniden yüklemeniz gerekir.
sudo systemctl reload nginx
Önyüklemede Otomatik Başlatmayı Devre Dışı Bırak
Nginx’in açılışta otomatik olarak başlamasını istemiyorsanız şunu çalıştırın:
sudo systemctl disable nginx
Yeni Dizin Yapılandırma
Birden fazla web sitesi barındırıyorsanız, standart adlandırma kurallarına uymak iyi bir pratik kuraldır. CPanel’in standart adlandırmasını kullanalım ve bir dizin oluşturalım.
sudo mkdir -p /var/www/yourdomain.com/public_html
İhtiyacınız olan bir sonraki şey bir indeks sayfasıdır. Bu, yapılandırmayı test etmenize yardımcı olacaktır.
sudo nano /var/www/yourdomain.com/public_html/index.html
Test amacıyla, index.html dosyasına tek satırlık bir metin girin. Dosyayı kaydedip kapatın.
Verilere çevrimiçi erişilebilmesi için Linux dosya izinlerini değiştirin.
sudo chmod 755 /var/www/yourdomain.com/public_html
index.html sayfasını açmayı deneyin. Çevrimiçi olarak erişilebilir olmalıdır.
Çözüm
Başarıyla sonra Nginx’i CentOS 7’ye kurmak, çoğu, iyi bilinen LAMP yığınına bir alternatif olan LEMP yığınını tam olarak kurmayı tercih ediyor. LEMP bir kısaltmadır; her harf, tek bir açık kaynak bileşenini temsil eder.
- L – Linux işletim sistemi
- E – Nginx (“motor x” olarak telaffuz ettiğiniz gibi telaffuz edilir)
- M – MySQL veya MariaDB ilişkisel veritabanı yönetim sistemi
- P – Dinamik web sitelerini barındırmak için PHP
Her bileşen ‘diğerinin üzerine oturur.’ Linux işletim sisteminiz temel katman görevi görür.
Bunun üzerinde web arka plan programınız Nginx bulunur. İlişkisel veri tabanı yönetim sistemi, web arka plan programınız tarafından işlenen ve sunulan tüm verileri depolar. Son olarak PHP, kullanıcıların bu verilerle etkileşime girmesine izin verir.
CentOS’un daha yeni sürümleri için, CentOS 8’de Nginx’i yükleme ve yapılandırma hakkındaki makalemize göz atın.