Takip et

Rocky Linux 9 Üzerine Nginx Kurulumu: Kapsamlı Bir Rehber

Rocky Linux 9 Üzerine Nginx Kurulumu: Kapsamlı Bir Rehber Giriş İnternet dünyasının omurgasını oluşturan web sunucuları, modern uygulamala

Rocky Linux 9 Üzerine Nginx Kurulumu: Kapsamlı Bir Rehber

Giriş

İnternet dünyasının omurgasını oluşturan web sunucuları, modern uygulamaların ve web sitelerinin temelini oluşturur. Bu alanda öne çıkan en güçlü ve esnek araçlardan biri de Nginx’tir (Engine-X olarak telaffuz edilir). Yüksek performans, düşük kaynak tüketimi ve eş zamanlı bağlantıları etkin bir şekilde yönetme yeteneği sayesinde Nginx, dünya genelindeki en yoğun trafikli sitelerin ve uygulamaların tercihi haline gelmiştir. Ters proxy, yük dengeleyici, HTTP önbelleği ve hatta basit bir e-posta proxy’si olarak bile kullanılabilen Nginx, sunduğu çok yönlülükle geliştiricilerin ve sistem yöneticilerinin vazgeçilmezidir.

Rocky Linux 9 ise, Red Hat Enterprise Linux (RHEL) tabanlı, topluluk odaklı, kurumsal sınıf bir işletim sistemidir. CentOS’un yerini alarak, kararlılık, güvenlik ve uzun süreli destek arayan kullanıcılar için sağlam bir alternatif sunar. Bu kombinasyon, yani Nginx’in gücü ile Rocky Linux’un kararlılığı, web uygulamalarınız için son derece güvenilir ve yüksek performanslı bir altyapı oluşturmanın anahtarıdır.

Bu kapsamlı rehberde, Rocky Linux 9 sunucunuza Nginx’i nasıl kuracağınızı, temel yapılandırmaları nasıl yapacağınızı, güvenlik duvarını nasıl ayarlayacağınızı ve hatta SSL/TLS sertifikalarını (HTTPS) nasıl etkinleştireceğinizi adım adım öğreneceksiniz. Amacımız, hem yeni başlayanlar hem de deneyimli kullanıcılar için anlaşılır, eksiksiz ve pratik bir kurulum süreci sunmaktır.

Ön Gereksinimler

Nginx kurulumuna başlamadan önce, aşağıdaki ön gereksinimlerin karşılandığından emin olmanız önemlidir:

* Rocky Linux 9 Kurulu Bir Sunucu: Nginx’i kuracağınız aktif bir Rocky Linux 9 sunucunuz olmalıdır. Bu, fiziksel bir sunucu, sanal makine (VM) veya bir bulut sunucusu (VPS) olabilir.
* sudo Yetkilerine Sahip Bir Kullanıcı: Kurulum ve yapılandırma adımları için sudo (superuser do) yetkilerine sahip, standart bir kullanıcı hesabına ihtiyacınız olacaktır. Güvenlik nedeniyle root kullanıcısı olarak doğrudan işlem yapmak yerine sudo kullanılması önerilir.
* İnternet Bağlantısı: Sunucunuzun paketleri indirebilmesi için aktif bir internet bağlantısına sahip olması gerekmektedir.
* Temel Linux Komut Satırı Bilgisi: Terminalde komut çalıştırma, dizinler arasında gezinme ve dosya düzenleme gibi temel Linux komutlarına aşina olmanız beklenir.
* Güvenlik Duvarı (FirewallD): Rocky Linux 9 varsayılan olarak FirewallD güvenlik duvarını kullanır. Nginx’in dışarıdan erişilebilir olması için gerekli portları (HTTP 80, HTTPS 443) açmanız gerekecektir. Bu adımı ilerleyen bölümlerde detaylı olarak ele alacağız.
* SELinux: Rocky Linux 9’da güvenlik için etkin olan SELinux, bazen web sunucularının dosyalara erişimini kısıtlayabilir. Varsayılan kurulumlar genellikle sorunsuz çalışsa da, özel yapılandırmalar veya dizinler kullanıldığında SELinux politikalarının ayarlanması gerekebilir. Bu rehberde, varsayılan yapılandırmanın yeterli olacağı varsayılmaktadır.

Sistem Güncellemesi

Herhangi bir yeni yazılım kurulumuna başlamadan önce, sisteminizin güncel olduğundan emin olmak iyi bir pratiktir. Bu, olası bağımlılık sorunlarını önler ve en son güvenlik yamalarına sahip olmanızı sağlar.

Terminalinizi açın ve aşağıdaki komutları çalıştırın:

sudo dnf update -y
sudo dnf upgrade -y

* sudo dnf update -y: Sistemdeki tüm yüklü paketlerin meta verilerini günceller ve yeni sürümleri indirir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı verir.
* sudo dnf upgrade -y: Mevcut paketleri yeni sürümlerine yükseltir.

Güncelleme işlemi tamamlandıktan sonra, çekirdek güncellemeleri yapıldıysa veya sistem yeniden başlatmayı gerektiriyorsa, sunucunuzu yeniden başlatmanız önerilir:

sudo reboot

Sunucunuz yeniden başladıktan sonra, SSH veya konsol aracılığıyla tekrar oturum açabilirsiniz.

Nginx Kurulum Yöntemleri

Rocky Linux 9 üzerine Nginx kurmanın iki ana yöntemi vardır: Rocky Linux’un varsayılan DNF depolarından kurulum veya Nginx’in resmi depolarından kurulum. Her iki yöntemin de avantajları ve dezavantajları bulunmaktadır.

Rocky Linux Varsayılan Depolarından Kurulum (Önerilen)

Bu yöntem, çoğu kullanıcı için en kolay ve en kararlı seçenektir. Rocky Linux’un varsayılan depoları, test edilmiş, güvenli ve sistemle iyi entegre edilmiş Nginx paketlerini sunar. Genellikle en son kararlı sürüm olmasa da, güvenlik yamaları düzenli olarak sağlanır.

1. Nginx Paketini Kurma:
Aşağıdaki komutu kullanarak Nginx’i kurun:

sudo dnf install nginx -y

Bu komut, Nginx paketini ve gerekli tüm bağımlılıklarını kuracaktır.

2. Nginx Servisini Başlatma ve Etkinleştirme:
Kurulum tamamlandıktan sonra, Nginx servisini başlatmanız ve sistem başlangıcında otomatik olarak başlaması için etkinleştirmeniz gerekir:

sudo systemctl start nginx
    sudo systemctl enable nginx

3. Nginx Servisinin Durumunu Kontrol Etme:
Nginx’in doğru bir şekilde çalışıp çalışmadığını kontrol etmek için aşağıdaki komutu kullanın:

sudo systemctl status nginx

Çıktıda active (running) ifadesini görmelisiniz.

4. Kurulumu Doğrulama:
Nginx’in başarılı bir şekilde kurulduğunu ve çalıştığını doğrulamak için, sunucunuzun IP adresini veya alan adını bir web tarayıcısına yazarak erişmeyi deneyin. Varsayılan bir “Nginx Test Page” veya “Welcome to Nginx!” sayfası görmelisiniz.

Ayrıca, terminalden Nginx sürümünü kontrol edebilirsiniz:

nginx -v

Nginx Resmi Depolarından Kurulum (En Son Sürümler İçin)

Eğer Nginx’in en son özelliklerine veya belirli bir sürümüne ihtiyacınız varsa, Nginx’in resmi depolarını kullanmanız gerekebilir. Nginx, iki ana depo sunar: stable (kararlı) ve mainline (ana hat). mainline deposu en son özellikleri içerirken, stable deposu daha az sıklıkla güncellenir ancak daha fazla test edilmiş ve kararlıdır.

1. Nginx GPG Anahtarını İçe Aktarma:
Nginx paketlerinin orijinalliğini doğrulamak için Nginx’in imzalama anahtarını içe aktarmanız gerekir:

sudo rpm --import https://nginx.org/keys/nginx_signing.key

2. Nginx Deposunu Yapılandırma:
Nginx deposunu Rocky Linux’a eklemek için /etc/yum.repos.d/nginx.repo adında yeni bir dosya oluşturmanız gerekir. Bu dosyayı bir metin düzenleyici ile açın (örneğin nano veya vi):

sudo nano /etc/yum.repos.d/nginx.repo

Dosyanın içine aşağıdaki içeriği yapıştırın. stable sürüm için:

[nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/rocky/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true

Veya mainline sürüm için (en son özellikler):

[nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/rocky/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true

Dosyayı kaydedin ve kapatın (nano için Ctrl+O, Enter, Ctrl+X).

3. Nginx Paketini Kurma:
Depo eklendikten sonra, Nginx’i kurmak için aşağıdaki komutu kullanın:

sudo dnf install nginx -y

Eğer Rocky Linux’un varsayılan depolarından zaten bir Nginx sürümü kuruluysa, DNF size mevcut sürümü Nginx resmi deposundaki sürümle değiştirmeyi teklif edebilir. Onaylayın.

4. Nginx Servisini Başlatma ve Etkinleştirme:
Tıpkı varsayılan depodan kurulumda olduğu gibi, Nginx servisini başlatın ve etkinleştirin:

sudo systemctl start nginx
    sudo systemctl enable nginx

5. Nginx Servisinin Durumunu Kontrol Etme:

sudo systemctl status nginx

6. Kurulumu Doğrulama:
Sunucunuzun IP adresini veya alan adını bir web tarayıcısına yazarak Nginx’in varsayılan sayfasını kontrol edin.

nginx -v

Bu komut, Nginx’in resmi depodan kurulan sürümünü gösterecektir.

Güvenlik Duvarı Yapılandırması (FirewallD)

Nginx başarılı bir şekilde kurulsa ve çalışıyor olsa bile, dış dünyadan erişilebilir olması için Rocky Linux’un güvenlik duvarı (FirewallD) üzerinde gerekli portların açılması gerekmektedir. Nginx varsayılan olarak HTTP trafiği için 80 numaralı portu ve HTTPS trafiği için 443 numaralı portu kullanır.

1. HTTP (80) Portunu Açma:
HTTP trafiğine izin vermek için 80 numaralı portu güvenlik duvarına kalıcı olarak ekleyin:

sudo firewall-cmd --permanent --add-service=http

2. HTTPS (443) Portunu Açma (SSL/TLS kullanmayı planlıyorsanız):
Eğer ileride SSL/TLS sertifikası kurarak HTTPS kullanmayı planlıyorsanız, 443 numaralı portu da açmanız gerekir:

sudo firewall-cmd --permanent --add-service=https

3. Güvenlik Duvarını Yeniden Yükleme:
Yaptığınız değişikliklerin etkili olması için güvenlik duvarını yeniden yükleyin:

sudo firewall-cmd --reload

4. Açık Portları Kontrol Etme:
Aşağıdaki komutla güvenlik duvarınızın hangi servis ve portlara izin verdiğini kontrol edebilirsiniz:

sudo firewall-cmd --list-all

Çıktıda services: cockpit dhcpv6-client http https ssh gibi bir liste görmelisiniz. http ve https servislerinin listede olması, Nginx’in web trafiğini alabileceği anlamına gelir.

Nginx Temel Yapılandırması

Nginx’in ana yapılandırma dosyası /etc/nginx/nginx.conf adresinde bulunur. Ancak, genellikle sanal ana bilgisayarlar (virtual hosts) veya “server block” adı verilen siteye özel yapılandırmalar /etc/nginx/conf.d/ dizini içindeki ayrı dosyalarda tutulur. Bu, yapılandırmayı daha düzenli ve yönetilebilir hale getirir.

Varsayılan Nginx kurulumu, /etc/nginx/nginx.conf dosyasında /etc/nginx/conf.d/*.conf yolundaki tüm .conf uzantılı dosyaları otomatik olarak dahil eden bir satır içerir. Bu nedenle, yeni siteler için yapılandırma dosyalarınızı bu dizin içinde oluşturmanız en iyi yaklaşımdır.

Örnek Bir Sanal Ana Bilgisayar (Server Block) Oluşturma

Kendi web siteniz için özel bir yapılandırma oluşturmak üzere bir “server block” tanımlayalım. Bu örnekte example.com alan adını kullanacağız.

1. Web Sitesi Kök Dizinini Oluşturma:
Web sitenizin dosyalarını barındıracak bir dizin oluşturun. Genellikle /var/www/ altında alan adınıza özel bir dizin oluşturmak iyi bir pratiktir:

sudo mkdir -p /var/www/example.com/html

2. Dizin İzinlerini Ayarlama:
Nginx kullanıcısının (genellikle nginx) bu dizine erişebilmesi için gerekli izinleri ayarlayın:

sudo chown -R nginx:nginx /var/www/example.com
    sudo chmod -R 755 /var/www/example.com

Bu komutlar, dizinin sahipliğini nginx kullanıcısına ve grubuna verir ve 755 izinlerini ayarlar, bu da Nginx’in dosyaları okuyabilmesini ve dizinlere girebilmesini sağlar.

3. Basit Bir HTML Test Sayfası Oluşturma:
Web sunucunuzun doğru çalıştığını test etmek için bu dizine basit bir index.html dosyası oluşturalım:

sudo nano /var/www/example.com/html/index.html

Dosyanın içine aşağıdaki içeriği yapıştırın:


    
    
        Nginx Test Sayfası
        
    
    
        
        

Bu, example.com için özel bir test sayfasıdır.

Yapılandırma başarıyla tamamlandı.

Kaydedin ve kapatın.

4. Nginx Server Block Yapılandırma Dosyası Oluşturma:
example.com için bir Nginx yapılandırma dosyası oluşturalım:

sudo nano /etc/nginx/conf.d/example.com.conf

Dosyanın içine aşağıdaki içeriği yapıştırın:

server {
        listen 80;
        listen [::]:80; # IPv6 desteği için

        server_name example.com www.example.com; # Alan adınızı buraya yazın

        root /var/www/example.com/html; # Web sitesi dosyalarınızın kök dizini
        index index.html index.htm index.nginx-debian.html; # Varsayılan dizin dosyaları

        location / {
            try_files $uri $uri/ =404; # Dosya bulunamazsa 404 döndür
        }

        # Hata sayfaları için özel yapılandırma (isteğe bağlı)
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html; # Nginx'in varsayılan hata sayfası dizini
        }

        # Log dosyaları
        access_log /var/log/nginx/example.com_access.log;
        error_log /var/log/nginx/example.com_error.log;
    }

* listen 80;: Nginx’in 80 numaralı porttan (HTTP) gelen bağlantıları dinlemesini sağlar.
* server_name example.com www.example.com;: Bu server block’un hangi alan adları için geçerli olduğunu belirtir. Kendi alan adlarınızla değiştirin.
* root /var/www/example.com/html;: Web sitenizin dosyalarının bulunduğu kök dizini tanımlar.
* index index.html ...;: Bir dizine erişildiğinde Nginx’in arayacağı varsayılan dosya isimlerini belirtir.
* location / { ... }: Tüm istekler için genel bir kural tanımlar. try_files yönergesi, gelen isteğin önce bir dosya, sonra bir dizin olarak aranmasını sağlar. Bulunamazsa 404 hatası döndürülür.
* access_log ve error_log: Bu server block’a ait erişim ve hata günlüklerinin nerede tutulacağını belirtir.

Kaydedin ve kapatın.

5. Nginx Yapılandırmasını Kontrol Etme:
Yeni yapılandırmanızı etkinleştirmeden önce, sözdizimi hatalarını kontrol etmek çok önemlidir:

sudo nginx -t

Eğer her şey doğruysa, aşağıdaki gibi bir çıktı görmelisiniz:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

Herhangi bir hata varsa, çıktıda belirtilen satır numaralarına bakarak example.com.conf dosyanızı düzeltin.

6. Nginx Servisini Yeniden Yükleme:
Yapılandırma hatası yoksa, Nginx servisini yeniden yükleyerek yeni yapılandırmanızı etkinleştirin:

sudo systemctl reload nginx

Bu komut, Nginx’in kesinti olmadan yeni yapılandırmayı yüklemesini sağlar. Eğer büyük bir değişiklik yaptıysanız veya emin değilseniz sudo systemctl restart nginx komutunu da kullanabilirsiniz, ancak bu kısa bir kesintiye neden olabilir.

7. Web Sitesini Tarayıcıdan Test Etme:
Şimdi bir web tarayıcısı açın ve http://example.com (veya sunucunuzun IP adresi) adresine gidin. Oluşturduğunuz “Nginx Rocky Linux 9 Üzerinde Başarıyla Çalışıyor!” başlıklı HTML sayfasını görmelisiniz.

SSL/TLS Yapılandırması (HTTPS)

Günümüzde HTTPS (Secure HTTP), web siteleri için bir standart haline gelmiştir. Kullanıcı verilerinin güvenliğini sağlamak, arama motoru sıralamalarını iyileştirmek ve genel olarak profesyonel bir imaj çizmek için HTTPS kullanmak şiddetle tavsiye edilir. Let’s Encrypt, ücretsiz ve otomatik SSL/TLS sertifikaları sağlayan popüler bir sertifika yetkilisidir. Certbot aracı ile bu sertifikaları kolayca alabilir ve Nginx ile entegre edebilirsiniz.

1. EPEL Deposunu Etkinleştirme:
Certbot paketi genellikle Rocky Linux’un varsayılan depolarında bulunmaz. Bu nedenle, Extra Packages for Enterprise Linux (EPEL) deposunu etkinleştirmeniz gerekir:

sudo dnf install epel-release -y

2. Certbot ve Nginx Eklentisini Yükleme:
EPEL deposu etkinleştirildikten sonra, Certbot’u ve Nginx için gerekli Python eklentisini yükleyebilirsiniz:

sudo dnf install certbot python3-certbot-nginx -y

3. SSL Sertifikası Alma:
Şimdi Certbot’u kullanarak alan adlarınız için SSL sertifikası alabilirsiniz. Certbot, Nginx yapılandırmanızı otomatik olarak algılar ve HTTPS’i etkinleştirecek şekilde günceller.

sudo certbot --nginx -d example.com -d www.example.com

* --nginx: Certbot’a Nginx ile entegrasyon yapmasını söyler.
* -d example.com -d www.example.com: Sertifikayı almak istediğiniz alan adlarını belirtir. Kendi alan adlarınızla değiştirin. Birden fazla alan adı için her birini -d ile ayrı ayrı ekleyebilirsiniz.

Certbot sizden bazı bilgiler isteyecektir:
* Bir e-posta adresi (yenileme bildirimleri ve güvenlik uyarıları için).
* Let’s Encrypt hizmet koşullarını kabul etmeniz.
* E-posta adresinizi EFF (Electronic Frontier Foundation) ile paylaşmak isteyip istemediğiniz (isteğe bağlı).
* HTTP trafiğini otomatik olarak HTTPS’e yönlendirmek isteyip istemediğiniz (önerilir). 2: Redirect seçeneğini seçin.

Sertifika alma işlemi başarılı olursa, Certbot size sertifikaların nerede saklandığını ve ne zaman sona ereceğini bildiren bir mesaj gösterecektir. Ayrıca Nginx yapılandırma dosyanızı (örneğin /etc/nginx/conf.d/example.com.conf) otomatik olarak güncelleyerek HTTPS’i etkinleştirecek ve HTTP isteklerini HTTPS’e yönlendirecektir.

4. Otomatik Yenilemeyi Kontrol Etme:
Let’s Encrypt sertifikaları 90 gün geçerlidir. Certbot, bu sertifikaları otomatik olarak yenilemek için bir systemd zamanlayıcısı veya cron görevi oluşturur. Yenileme zamanlayıcısının durumunu kontrol edebilirsiniz:

sudo systemctl status certbot-renew.timer

Yenileme işlemini test etmek için aşağıdaki komutu kullanabilirsiniz (bu komut sertifikaları gerçekten yenilemez, sadece yenileme sürecini simüle eder):

sudo certbot renew --dry-run

Eğer test başarılı olursa, sertifikalarınızın otomatik olarak yenileneceğinden emin olabilirsiniz.

5. HTTPS’i Tarayıcıdan Test Etme:
Şimdi web tarayıcınızı açın ve https://example.com adresine gidin. Web sitenizin güvenli bir bağlantı (genellikle adres çubuğunda bir kilit simgesi) üzerinden yüklendiğini görmelisiniz. Ayrıca, http://example.com adresine gittiğinizde otomatik olarak HTTPS’e yönlendirildiğinizi de doğrulayabilirsiniz.

Nginx Yönetim Komutları

Nginx servisini yönetmek için systemctl komutunu kullanırız. İşte en sık kullanılan komutlar:

* Nginx’i Başlatma:

sudo systemctl start nginx

* Nginx’i Durdurma:

sudo systemctl stop nginx

* Nginx’i Yeniden Başlatma: (Servisi durdurup tekrar başlatır, kısa bir kesintiye neden olabilir)

sudo systemctl restart nginx

* Nginx Yapılandırmasını Yeniden Yükleme: (Servisi durdurmadan yeni yapılandırmayı yükler, kesintisizdir)

sudo systemctl reload nginx

* Nginx’i Sistem Başlangıcında Etkinleştirme:

sudo systemctl enable nginx

* Nginx’i Sistem Başlangıcında Devre Dışı Bırakma:

sudo systemctl disable nginx

* Nginx Servisinin Durumunu Kontrol Etme:

sudo systemctl status nginx

* Nginx Yapılandırma Sözdizimini Kontrol Etme:

sudo nginx -t

Bu komut, /etc/nginx/nginx.conf dosyasının ve içerdiği diğer yapılandırma dosyalarının sözdizimini kontrol eder. Hata ayıklama için çok kullanışlıdır.

Sıkça Karşılaşılan Sorunlar ve Çözümleri

Nginx kurulumu ve yapılandırması sırasında karşılaşabileceğiniz bazı yaygın sorunlar ve bunların çözümleri:

Port Çakışmaları

* Sorun: Nginx başlamıyor veya web sitesine erişilemiyor ve 80 veya 443 portlarının başka bir servis tarafından kullanıldığına dair hata mesajları alıyorsunuz.
* Çözüm: Hangi servisin bu portları kullandığını bulmak için netstat veya ss komutunu kullanın:

sudo netstat -tulnp | grep ":80\|:443"

veya

sudo ss -tulnp | grep ":80\|:443"

Bu, portları kullanan işlemi ve PID’yi gösterecektir. Çakışan servisi durdurmanız veya Nginx’in başka bir port kullanacak şekilde yapılandırmanız gerekebilir. Apache gibi başka bir web sunucusu çalışıyorsa, onu durdurmanız veya kaldırmanız gerekebilir (sudo systemctl stop httpd, sudo systemctl disable httpd).

Güvenlik Duvarı Engeli

* Sorun: Nginx çalışıyor ancak web tarayıcınızdan sunucuya erişemiyorsunuz (bağlantı zaman aşımına uğruyor).
* Çözüm: FirewallD’nin Nginx için gerekli portları (80 ve 443) açtığından emin olun. Yukarıdaki “Güvenlik Duvarı Yapılandırması” bölümündeki adımları kontrol edin ve uygulayın.

sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

SELinux Kısıtlamaları

* Sorun: Nginx çalışıyor ancak web sayfaları yüklenmiyor veya 403 Forbidden hatası alıyorsunuz. Nginx hata günlüklerinde (örneğin /var/log/nginx/error.log) “permission denied” (izin reddedildi) hataları görüyorsunuz.
* Çözüm: SELinux, web sunucusunun belirli dizinlere veya dosyalara erişimini kısıtlayabilir.
* Geçici olarak devre dışı bırakma (test amaçlı):

sudo setenforce 0

Bu komut SELinux’u geçici olarak Permissive moda alır. Eğer sorun düzelirse, sorun SELinux’tandır. Yeniden başlatma sonrası tekrar etkinleşir.
* Kalıcı çözüm (önerilen): Web sitesi dizininize doğru SELinux bağlamını atayın:

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
        sudo restorecon -Rv /var/www/example.com

Bu komutlar, /var/www/example.com dizini ve altındaki tüm dosyalara web içeriği için doğru SELinux bağlamını uygular. Ardından sudo setenforce 1 komutuyla SELinux’u tekrar Enforcing moda alabilirsiniz.

Yapılandırma Hataları

* Sorun: sudo nginx -t komutu hata veriyor veya Nginx servisi başlamıyor.
* Çözüm: nginx -t komutunun çıktısını dikkatlice inceleyin. Hata mesajları genellikle hangi dosyada ve hangi satırda hata olduğunu belirtir. Yapılandırma dosyanızdaki sözdizimi hatalarını (noktalı virgül eksikliği, yanlış direktifler vb.) düzeltin. Örneğin, bir server_name direktifinde example.com; yerine example.com yazmak bir hataya neden olabilir.

İzin Hataları (Dosya ve Dizin İzinleri)

* Sorun: Nginx 403 Forbidden hatası veriyor veya dosyaları bulamıyor, ancak SELinux’tan emin değilsiniz.
* Çözüm: Nginx kullanıcısının (genellikle nginx) web sitesi dosyalarına ve dizinlerine okuma ve yürütme izinlerine sahip olduğundan emin olun.
* Web sitesi kök dizini için:

sudo chown -R nginx:nginx /var/www/example.com
        sudo chmod -R 755 /var/www/example.com

* Tek tek dosyalar için: Nginx’in okuması gereken tüm dosyaların nginx kullanıcısı tarafından okunabilir olduğundan emin olun (örneğin chmod 644 index.html).

Log Dosyaları

* Nginx’in sorunlarını gidermek için log dosyalarını kontrol etmek önemlidir.
* Erişim günlükleri: /var/log/nginx/access.log (veya server block’unuzda tanımladığınız özel log dosyası)
* Hata günlükleri: /var/log/nginx/error.log (veya server block’unuzda tanımladığınız özel log dosyası)
* Bu dosyaları tail -f /var/log/nginx/error.log gibi komutlarla canlı olarak izleyebilirsiniz.

Sonuç

Bu kapsamlı rehberde, Rocky Linux 9 sunucunuza Nginx’i nasıl kuracağınızı, temel yapılandırmaları nasıl yapacağınızı, güvenlik duvarını nasıl yöneteceğinizi ve Certbot ile ücretsiz SSL/TLS sertifikaları kullanarak HTTPS’i nasıl etkinleştireceğinizi adım adım öğrendiniz. Artık yüksek performanslı ve güvenli web uygulamalarınızı barındırmak için sağlam bir Nginx altyapısına sahipsiniz.

Nginx, sadece bir web sunucusu olmanın ötesinde, ters proxy, yük dengeleyici, HTTP önbelleği gibi birçok farklı rolü üstlenebilen esnek bir araçtır. Bu rehberde öğrendiğiniz temel adımlar, Nginx’in sunduğu geniş özellik yelpazesini keşfetmeniz için bir başlangıç noktasıdır.

İleri düzeyde, Nginx’i aşağıdaki gibi daha karmaşık senaryolar için yapılandırmayı düşünebilirsiniz:

* Yük Dengeleme (Load Balancing): Birden fazla uygulama sunucusu arasında trafiği dağıtarak ölçeklenebilirlik ve yüksek erişilebilirlik sağlamak.
* Önbellekleme (Caching): Sık erişilen içeriği önbelleğe alarak yanıt sürelerini iyileştirmek ve sunucu yükünü azaltmak.
* FastCGI Proxy: PHP gibi dinamik içerikleri işlemek için PHP-FPM ile entegrasyon.
* Kimlik Doğrulama: Temel HTTP kimlik doğrulaması veya daha gelişmiş yöntemlerle erişimi kısıtlamak.
* GZIP Sıkıştırma: Web içeriğini sıkıştırarak bant genişliği kullanımını azaltmak ve sayfa yükleme sürelerini hızlandırmak.

Rocky Linux 9’un kararlılığı ve Nginx’in performansı ile birleştiğinde, web projeleriniz için güçlü, güvenilir ve yüksek performanslı bir temel oluşturmuş olursunuz. Düzenli sistem güncellemeleri yapmayı, Nginx yapılandırma dosyalarınızı yedeklemeyi ve güvenlik duvarı kurallarınızı gözden geçirmeyi unutmayın. Bu adımlar, sunucunuzun güvenli ve sorunsuz çalışmaya devam etmesini sağlayacaktır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version