Takip et

Nginx Server Bloklarını (Sanal Hostları) Rocky Linux 9 Üzerinde Kurulum Rehberi

Nginx Server Bloklarını (Sanal Hostları) Rocky Linux 9 Üzerinde Kurulum Rehberi Nginx, yüksek performanslı, kararlı ve düşük kaynak tüketi

Nginx Server Bloklarını (Sanal Hostları) Rocky Linux 9 Üzerinde Kurulum Rehberi

Nginx, yüksek performanslı, kararlı ve düşük kaynak tüketimine sahip bir web sunucusu ve ters proxy çözümüdür. Özellikle eşzamanlı bağlantıları ve statik içerik sunumunu optimize etme yeteneği sayesinde modern web uygulamalarında yaygın olarak tercih edilir. Rocky Linux 9 gibi güçlü ve güvenilir bir işletim sistemi üzerinde Nginx server bloklarını (sanal hostlar olarak da bilinir) yapılandırmak, tek bir sunucu üzerinde birden fazla web sitesini veya uygulamayı barındırmanın en etkili yollarından biridir. Bu detaylı rehberde, Rocky Linux 9 üzerinde Nginx server bloklarını adım adım nasıl kuracağınızı, temelden ileri düzeye kadar tüm yapılandırma süreçlerini ve sık karşılaşılan sorunların çözümlerini ele alacağız.

Giriş ve Ön Koşullar

Nginx server bloklarının kurulumuna başlamadan önce, temel kavramları anlamak ve gerekli ön koşulları sağlamak önemlidir.

Nginx Nedir?

Nginx (engine-x olarak telaffuz edilir), Igor Sysoev tarafından geliştirilen ücretsiz, açık kaynaklı, yüksek performanslı bir HTTP ve ters proxy sunucusudur. Ayrıca bir IMAP/POP3 proxy sunucusu ve genel bir TCP/UDP proxy sunucusu olarak da işlev görebilir. Olay tabanlı, eşzamansız mimarisi sayesinde binlerce eşzamanlı bağlantıyı düşük bellek kullanımıyla işleyebilir. Bu özellikler, Nginx’i yüksek trafikli web siteleri ve modern mikro servis mimarileri için ideal bir seçim haline getirir.

Server Blokları (Sanal Hostlar) Nedir?

Server blokları, Nginx’in tek bir sunucu üzerinde birden fazla domain’i (alan adını) barındırmasına olanak tanıyan yapılandırma birimleridir. Her server bloğu, belirli bir domain veya IP adresine gelen istekleri dinler ve bu isteklere özel olarak tanımlanmış bir dizinden içerik sunar. Örneğin, example.com ve anothersite.net adında iki farklı web siteniz varsa, her biri için ayrı bir server bloğu oluşturarak Nginx’in hangi isteği hangi siteye yönlendireceğini belirleyebilirsiniz. Bu, kaynakları verimli kullanmak ve sunucu yönetimini basitleştirmek için kritik bir özelliktir.

Rocky Linux 9 Üzerinde Nginx Kurulumu

Bu rehber, Nginx’in Rocky Linux 9 sisteminizde zaten yüklü olduğunu varsaymaktadır. Eğer yüklü değilse, aşağıdaki komutları kullanarak kolayca kurabilirsiniz:

sudo dnf update -y
sudo dnf install nginx -y
sudo systemctl enable --now nginx
sudo systemctl status nginx

Bu komutlar, sisteminizi güncelleyecek, Nginx’i kuracak, sistem başlangıcında otomatik başlamasını sağlayacak ve hemen başlatacaktır. Son komut, Nginx hizmetinin durumunu kontrol etmenizi sağlar.

Ön Koşullar

* Sudo Erişimi: Yapılandırma dosyalarını düzenlemek ve hizmetleri yönetmek için sudo yetkilerine sahip bir kullanıcıya ihtiyacınız olacak.
* Domain Adı ve DNS Yapılandırması: Her server bloğu için bir domain adına (örneğin, example.com) ve bu domain’in DNS kayıtlarının sunucunuzun IP adresine işaret ettiğinden emin olmalısınız. A kaydı (veya AAAA kaydı IPv6 için) gereklidir. Bu, Nginx’in gelen istekleri doğru server bloğuna yönlendirmesini sağlar.
* Temel Linux Bilgisi: Dosya sistemi navigasyonu, dosya düzenleme (vi, nano gibi editörlerle) ve temel komut satırı kullanımı hakkında bilgi sahibi olmanız beklenir.

Temel Nginx Yapılandırması ve Dizeler

Nginx, esnek ve modüler bir yapılandırma sistemine sahiptir. Server bloklarını doğru bir şekilde kurmak için bu yapıyı anlamak önemlidir.

Nginx Yapılandırma Dosyası Yapısı

Nginx’in ana yapılandırma dosyası genellikle /etc/nginx/nginx.conf konumunda bulunur. Bu dosya, Nginx’in genel davranışını (worker süreçleri, loglama, gzip sıkıştırma vb.) tanımlar. Ana yapılandırma dosyasının içinde, genellikle include direktifleri bulunur. Bu direktifler, Nginx’in ek yapılandırma dosyalarını okumasını sağlar. Özellikle server blokları için kullanılan yaygın bir yapı şöyledir:

# /etc/nginx/nginx.conf dosyasından bir kesit
http {
    # ... diğer http ayarları ...

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Bu include direktifleri, Nginx’in /etc/nginx/conf.d/ dizinindeki .conf uzantılı dosyaları ve /etc/nginx/sites-enabled/ dizinindeki tüm dosyaları yüklemesini sağlar. Bizim odak noktamız sites-available ve sites-enabled dizinleri olacaktır.

sites-available ve sites-enabled Dizelerinin Anlamı

Bu iki dizin, Nginx server bloklarını yönetmek için endüstri standardı bir yaklaşımdır:

* /etc/nginx/sites-available/: Bu dizin, tüm server bloğu yapılandırma dosyalarınızı depolar. Bir server bloğu oluşturduğunuzda, yapılandırma dosyasını buraya kaydedersiniz. Bu dizindeki dosyalar, Nginx tarafından doğrudan yüklenmez.
* /etc/nginx/sites-enabled/: Bu dizin, etkin olan server bloklarını içerir. Bir server bloğunu etkinleştirmek için, sites-available dizinindeki ilgili yapılandırma dosyasına bu dizinde bir sembolik bağlantı (symlink) oluşturursunuz. Nginx, yalnızca bu dizindeki dosyaları yükler.

Bu ayrım, server bloklarını kolayca etkinleştirip devre dışı bırakmanızı sağlar. Bir siteyi devre dışı bırakmak için, sites-enabled dizinindeki sembolik bağlantıyı kaldırmanız yeterlidir, yapılandırma dosyasının kendisini silmenize gerek kalmaz.

İlk Server Bloğu Oluşturma (Varsayılan Sayfa)

Şimdi example.com adında bir domain için ilk server bloğumuzu oluşturalım.

Domain İçin Dizini Oluşturma

Her web sitesi için ayrı bir kök dizin oluşturmak iyi bir uygulamadır. Bu, dosyaları düzenli tutar ve izin yönetimi kolaylaştırır.

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com

* sudo mkdir -p /var/www/example.com/html: example.com için kök dizini ve html alt dizinini oluşturur. -p bayrağı, üst dizinler yoksa onları da oluşturur.
* sudo chown -R $USER:$USER /var/www/example.com/html: Oluşturduğunuz dizinin sahipliğini mevcut kullanıcınıza verir. $USER ortam değişkeni, mevcut kullanıcı adınızı temsil eder. Bu, test dosyalarını oluştururken izin sorunları yaşamanızı engeller.
* sudo chmod -R 755 /var/www/example.com: Dizin ve dosyalar için okuma, yazma ve çalıştırma izinlerini ayarlar. Web sunucusunun dosyaları okuyabilmesi için bu gereklidir.

Test HTML Dosyası Oluşturma

Web sitemizin çalıştığını doğrulamak için basit bir 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:




    Hoş Geldiniz!
    


    
    

Bu, Nginx sunucu bloğunuzun başarıyla çalıştığını gösteren varsayılan sayfadır.

Kaydedin ve çıkın (Nano için Ctrl+X, Y ve Enter).

Server Bloğu Yapılandırma Dosyası Oluşturma

Şimdi example.com için server bloğu yapılandırma dosyasını sites-available dizininde oluşturalım.

sudo nano /etc/nginx/sites-available/example.com.conf

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

server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm index.nginx-debian.html;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/example.com_error.log;
    access_log /var/log/nginx/example.com_access.log;
}

Bu yapılandırma dosyasındaki temel direktifler şunlardır:

* listen 80;: Nginx’in bu server bloğu için 80 numaralı porttan (HTTP) gelen bağlantıları dinlemesini söyler.
* listen [::]:80;: Aynı şekilde, IPv6 bağlantıları için de 80 numaralı portu dinler.
* server_name example.com www.example.com;: Bu server bloğunun hangi domain adlarına hizmet vereceğini belirtir. Gelen isteğin Host başlığı bu değerlerden biriyle eşleşirse, bu server bloğu kullanılır.
* root /var/www/example.com/html;: Web sitesinin dosyalarının bulunduğu kök dizini tanımlar.
* index index.html ...;: Bir dizine istek geldiğinde Nginx’in arayacağı varsayılan dosya adlarını belirtir.
* location / { ... }: Tüm istekler için (kök dizin /) belirli kuralları tanımlar.
* try_files $uri $uri/ =404;: Gelen isteğe karşılık gelen bir dosya ($uri) veya dizin ($uri/) arar. Bulamazsa, 404 hatası döndürür.
* error_log ve access_log: Bu server bloğuna özel hata ve erişim günlüklerinin nereye yazılacağını belirtir.

Kaydedin ve çıkın.

Yapılandırmayı Etkinleştirme

Oluşturduğumuz server bloğunu etkinleştirmek için sites-enabled dizinine sembolik bir bağlantı oluşturmalıyız:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Bu komut, sites-available dizinindeki yapılandırma dosyamıza sites-enabled dizininde bir kısayol oluşturur.

Nginx Yapılandırmasını Test Etme ve Yeniden Yükleme

Herhangi bir Nginx yapılandırma değişikliğinden sonra, yeni ayarların geçerli olup olmadığını ve herhangi bir sözdizimi hatası içerip içermediğini kontrol etmek çok önemlidir.

sudo nginx -t

Eğer çıktı aşağıdaki gibi ise, yapılandırmanız hatasızdır:

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

Her şey yolundaysa, Nginx hizmetini yeniden yükleyerek yeni yapılandırmayı uygulayın:

sudo systemctl reload nginx

reload komutu, Nginx’in kesintisiz hizmet vermeye devam ederken yapılandırmayı yeniden yüklemesini sağlar. restart komutu ise kısa bir kesinti yaşatır.

Güvenlik Duvarı Ayarları (FirewallD)

Rocky Linux, varsayılan olarak FirewallD güvenlik duvarı ile gelir. Web sunucunuzun dışarıdan erişilebilir olması için HTTP (80) ve HTTPS (443) portlarına izin vermeniz gerekir.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https # HTTPS daha sonra kullanılacak olsa da ekleyebiliriz
sudo firewall-cmd --reload

Bu komutlar, HTTP ve HTTPS hizmetlerine kalıcı olarak izin verir ve güvenlik duvarı kurallarını yeniden yükler.

SELinux Ayarları

Rocky Linux’ta SELinux etkin durumdaysa, Nginx’in web dizinlerinizdeki dosyalara erişiminde sorun yaşayabilirsiniz. Bu sorunları önlemek için web içeriği dizininin SELinux bağlamını doğru ayarlamanız gerekir:

sudo chcon -Rt httpd_sys_content_t /var/www/example.com

Bu komut, /var/www/example.com dizininin ve altındaki tüm dosyaların SELinux bağlamını httpd_sys_content_t olarak ayarlar, bu da Nginx’in bu dosyalara erişmesine izin verir.

Sonuçları Test Etme (Tarayıcıdan)

Artık her şey ayarlandığına göre, bir web tarayıcısı açın ve http://example.com adresine gidin (kendi domain adınızla değiştirin). Oluşturduğunuz “Hoş Geldiniz!” sayfasını görmelisiniz.

Birden Fazla Server Bloğu Yapılandırma

Tek bir sunucuda birden fazla web sitesi barındırmak server bloklarının ana amacıdır. Şimdi anothersite.net adında ikinci bir domain için server bloğu oluşturalım.

İkinci Bir Domain İçin Dizini ve Test Dosyası Oluşturma

Önceki adımlara benzer şekilde, ikinci domain için gerekli dizinleri oluşturalım ve bir test dosyası ekleyelim:

sudo mkdir -p /var/www/anothersite.net/html
sudo chown -R $USER:$USER /var/www/anothersite.net/html
sudo chmod -R 755 /var/www/anothersite.net
sudo nano /var/www/anothersite.net/html/index.html

index.html dosyasına aşağıdaki içeriği ekleyin:




    Başka Bir Site!
    


    
    

Bu, ikinci Nginx sunucu bloğunuzun başarıyla çalıştığını gösteren sayfadır.

Kaydedin ve çıkın. SELinux bağlamını da ayarlamayı unutmayın:

sudo chcon -Rt httpd_sys_content_t /var/www/anothersite.net

İkinci Server Bloğu Yapılandırma Dosyası Oluşturma

Şimdi anothersite.net için yeni bir yapılandırma dosyası oluşturalım:

sudo nano /etc/nginx/sites-available/anothersite.net.conf

İçeriği aşağıdaki gibi olsun:

server {
    listen 80;
    listen [::]:80;

    server_name anothersite.net www.anothersite.net;

    root /var/www/anothersite.net/html;
    index index.html index.htm index.nginx-debian.html;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/anothersite.net_error.log;
    access_log /var/log/nginx/anothersite.net_access.log;
}

Bu yapılandırma, example.com için oluşturduğumuz yapılandırmaya çok benzer, ancak server_name, root ve log dosyası yolları anothersite.net‘e göre güncellenmiştir.

İkinci Yapılandırmayı Etkinleştirme

İkinci server bloğunu da etkinleştirmek için sembolik bir bağlantı oluşturun:

sudo ln -s /etc/nginx/sites-available/anothersite.net.conf /etc/nginx/sites-enabled/

Nginx’i Yeniden Yükleme

Yapılandırmayı test edin ve Nginx’i yeniden yükleyin:

sudo nginx -t
sudo systemctl reload nginx

Sonuçları Test Etme

Web tarayıcınızda http://anothersite.net adresine giderek ikinci sitenizin de doğru çalıştığını doğrulayın. Her iki sitenin de aynı sunucu IP adresinden farklı içerikler sunması gerekir.

SSL/TLS ile Server Blokları (HTTPS)

Günümüzde web siteleri için HTTPS kullanmak bir zorunluluktur. Arama motoru sıralamaları, kullanıcı güvenliği ve modern tarayıcı gereksinimleri nedeniyle SSL/TLS sertifikaları kritik öneme sahiptir. Let’s Encrypt ve Certbot, ücretsiz ve otomatik SSL sertifikaları sağlamanın en popüler yoludur.

Certbot Kurulumu

Certbot, Let’s Encrypt sertifikalarını otomatik olarak almayı ve Nginx yapılandırmasına entegre etmeyi kolaylaştıran bir araçtır.

sudo dnf install certbot python3-certbot-nginx -y

SSL Sertifikası Alma (Let’s Encrypt)

Şimdi example.com için bir SSL sertifikası alalım. Certbot, Nginx eklentisi sayesinde yapılandırmayı otomatik olarak güncelleyebilir.

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

Bu komutu çalıştırdığınızda, Certbot sizden bazı bilgiler isteyecektir (e-posta adresi, hizmet şartlarını kabul etme vb.). Başarılı olursa, Certbot ayrıca HTTP trafiğini otomatik olarak HTTPS’e yönlendirmek isteyip istemediğinizi soracaktır. Genellikle bu yönlendirmeyi kabul etmek iyi bir uygulamadır.

Aynı işlemi anothersite.net için de tekrarlayın:

sudo certbot --nginx -d anothersite.net -d www.anothersite.net

Certbot, sertifikaları /etc/letsencrypt/live/your_domain/ dizinine yerleştirecek ve Nginx yapılandırma dosyanızı otomatik olarak güncelleyecektir. Güncellenmiş example.com.conf dosyanız yaklaşık olarak şöyle görünecektir:

server {
    # HTTP isteklerini HTTPS'e yönlendirme
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm index.nginx-debian.html;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

    # Certbot tarafından eklenen diğer SSL ayarları
    include /etc/letsencrypt/options-ssl-nginx.conf;
    include /etc/letsencrypt/ssl-dhparams.conf;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/example.com_error.log;
    access_log /var/log/nginx/example.com_access.log;
}

Certbot, orijinal server bloğunuza HTTP yönlendirmesi ekleyen yeni bir server bloğu (listen 80) ve HTTPS için ayrı bir server bloğu (listen 443) oluşturur.

Otomatik Yenileme

Let’s Encrypt sertifikaları 90 gün geçerlidir. Certbot, bunları otomatik olarak yenilemek için bir cron job veya systemd timer ayarlar. Yenilemenin düzgün çalıştığını test edebilirsiniz:

sudo certbot renew --dry-run

Eğer bu komut hatasız çalışırsa, sertifikalarınızın otomatik olarak yenileneceğinden emin olabilirsiniz.

Gelişmiş Nginx Server Bloğu Ayarları

Nginx server blokları sadece basit içerik sunumundan çok daha fazlasını yapabilir. İşte bazı gelişmiş ayarlar:

Log Dosyaları (access.log, error.log)

Her server bloğu için özel erişim ve hata günlükleri tutmak, sorun giderme ve trafik analizi için çok faydalıdır. Daha önce yapılandırmalarımızda zaten eklemiştik:

error_log /var/log/nginx/example.com_error.log;
access_log /var/log/nginx/example.com_access.log;

Bu dosyaları düzenli olarak kontrol etmek, sitenizin performansını ve güvenliğini izlemenize yardımcı olur.

Hata Sayfaları (error_page)

Kullanıcı dostu özel hata sayfaları tanımlayabilirsiniz.

server {
    # ...
    error_page 404 /404.html;
    location = /404.html {
        root /var/www/example.com/html;
        internal; # Bu sayfanın doğrudan erişilemez olduğunu belirtir
    }
    # ...
}

Bu örnekte, 404 hatası oluştuğunda Nginx, /var/www/example.com/html/404.html dosyasını sunacaktır.

Yönlendirmeler (rewrite, return)

URL’leri yeniden yazmak veya yönlendirmek için rewrite veya return direktiflerini kullanabilirsiniz. return genellikle daha basit ve performanslıdır.

* HTTP’den HTTPS’e Yönlendirme (Certbot tarafından otomatik eklenir):

server {
        listen 80;
        server_name example.com www.example.com;
        return 301 https://$host$request_uri;
    }

* Belirli bir URL’yi başka bir URL’ye yönlendirme:

location /old-page {
        return 301 /new-page;
    }

* www olmayan domainleri www‘ye yönlendirme:

server {
        listen 80;
        listen 443 ssl;
        server_name example.com; # Sadece www olmayan domain
        return 301 $scheme://www.example.com$request_uri;
    }

Bu yönlendirmeleri mevcut HTTPS server bloğunuzun üzerine ekleyebilirsiniz.

Proxy Pass (Ters Proxy)

Nginx’i bir ters proxy olarak kullanarak istekleri arka uç uygulamalarına (Node.js, Python Flask/Django, PHP-FPM vb.) yönlendirebilirsiniz.

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://localhost:3000; # Arka uç uygulamanızın çalıştığı adres
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Bu yapılandırma, api.example.com‘a gelen istekleri localhost:3000 adresinde çalışan bir uygulamaya iletir.

Kullanıcı Kimlik Doğrulama (Basic Auth)

Bir dizini veya tüm siteyi parola ile korumak için Basic Auth kullanabilirsiniz.

1. Parola dosyası oluşturun:

sudo dnf install httpd-tools -y # htpasswd aracını kurar
    sudo htpasswd -c /etc/nginx/.htpasswd admin_user

admin_user yerine istediğiniz kullanıcı adını yazın. Parolayı girmeniz istenecektir.
2. Nginx yapılandırmasına ekleyin:

location /admin {
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }

Bu, /admin URL’sine gelen istekler için kimlik doğrulama gerektirecektir.

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

Nginx yapılandırması sırasında bazı yaygın sorunlarla karşılaşabilirsiniz. İşte bunlardan bazıları ve çözümleri:

nginx -t Hatası

Bu komut, yapılandırma dosyanızdaki sözdizimi hatalarını kontrol eder. Eğer bir hata alırsanız, çıktıda hatanın hangi dosyada ve hangi satırda olduğunu gösteren bir mesaj olacaktır. Bu mesajı dikkatlice okuyun ve belirtilen dosyadaki hatayı düzeltin. Genellikle noktalı virgül (;) eksikliği, yanlış direktif adları veya parantez hatalarıdır.

403 Forbidden Hatası (izinler, SELinux)

Bu hata, Nginx’in istenen dosyaya veya dizine erişim izni olmadığını gösterir.

* Dosya İzinleri: Web kök dizininin ve içindeki dosyaların Nginx kullanıcısı (genellikle nginx kullanıcısı) tarafından okunabilir olduğundan emin olun. sudo chmod -R 755 /var/www/your_domain komutunu tekrar çalıştırın.
* SELinux: Rocky Linux’ta sıkça karşılaşılan bir sorundur. Nginx’in web dizininize erişebilmesi için SELinux bağlamını doğru ayarladığınızdan emin olun:

sudo chcon -Rt httpd_sys_content_t /var/www/your_domain

Veya tüm web dizinleri için:

sudo restorecon -Rv /var/www/

* Varsayılan Dizin Sayfası: index direktifinde belirtilen dosyanın (örneğin index.html) kök dizinde mevcut olduğundan emin olun.

502 Bad Gateway (upstream sorunu)

Bu hata, Nginx’in bir ters proxy olarak davrandığı ve arka uç uygulamanızla iletişim kuramadığı anlamına gelir.

* Arka uç uygulamanızın çalışıp çalışmadığını kontrol edin.
* Nginx yapılandırmasındaki proxy_pass adresinin doğru olduğundan emin olun (IP adresi ve port).
* Arka uç uygulamanızın dinlediği portun güvenlik duvarı tarafından engellenmediğinden emin olun (örneğin, sudo firewall-cmd --permanent --add-port=3000/tcp --add-port=3000/tcp; sudo firewall-cmd --reload).

Domain Yönlendirme Sorunları (DNS, server_name)

Tarayıcınız doğru siteyi göstermiyorsa veya hata alıyorsanız:

* DNS Kayıtları: Domain adınızın DNS kayıtlarının sunucunuzun IP adresine doğru şekilde işaret ettiğinden emin olun. dig your_domain veya nslookup your_domain komutlarıyla kontrol edebilirsiniz.
* server_name Direktifi: Nginx yapılandırma dosyanızdaki server_name direktifinin doğru domain adlarını (hem www hem de www olmayan) içerdiğinden emin olun.
* Varsayılan Server Bloğu: Eğer hiçbir server_name eşleşmezse, Nginx genellikle ilk server bloğunu kullanır. Beklenmedik bir site görüyorsanız, bu varsayılan davranış nedeniyle olabilir.

SSL Sertifikası Hataları

HTTPS ile ilgili sorunlar yaşıyorsanız:

* Sertifika Yolları: Nginx yapılandırmanızdaki ssl_certificate ve ssl_certificate_key yollarının doğru olduğundan emin olun. Let’s Encrypt için bunlar genellikle /etc/letsencrypt/live/your_domain/ altında bulunur.
* Güvenlik Duvarı: HTTPS portu (443) için güvenlik duvarında izin verildiğinden emin olun.
* Sertifika Süresi: Sertifikanızın süresinin dolmadığından emin olun. sudo certbot renew --dry-run ile kontrol edebilirsiniz.

Sonuç

Rocky Linux 9 üzerinde Nginx server bloklarını yapılandırmak, tek bir sunucuda birden fazla web sitesi veya uygulama barındırmak için güçlü ve esnek bir yöntemdir. Bu rehberde, temel Nginx kurulumundan başlayarak, birden fazla server bloğu oluşturmayı, Let’s Encrypt ile SSL/TLS sertifikaları eklemeyi ve bazı gelişmiş yapılandırma seçeneklerini ele aldık. Ayrıca, karşılaşılabilecek yaygın sorunlara yönelik çözümleri de sunduk.

Bu adımları dikkatlice takip ederek, web projeleriniz için güvenli, yüksek performanslı ve ölçeklenebilir bir barındırma ortamı oluşturabilirsiniz. Nginx’in esnekliği sayesinde, özel ihtiyaçlarınıza göre daha karmaşık yönlendirme kuralları, yük dengeleme ve önbellekleme gibi özellikler de kolayca entegre edilebilir. Unutmayın, herhangi bir yapılandırma değişikliğinden sonra sudo nginx -t komutuyla kontrol etmek ve ardından sudo systemctl reload nginx ile Nginx’i yeniden yüklemek iyi bir alışkanlıktı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