Nginx’de Tüm HTTP İsteklerini HTTPS’e Yönlendirme: Alt‑Domainleri Korumak

tatli_cadi

Yeni Üye
Katılım
Eyl 2026
Konular
1
Mesajlar
1
Tepki puanı
0
Görüntülenme
0

Senaryo​

Bir ana domain ve bazı alt‑domain’leri (ör. example.com, blog.example.com, shop.example.com) barındırıyorsunuz. HTTPS’e geçişi zorunlu kılmak istiyor ancak alt‑domain adreslerinin aynı kalmasını istiyorsunuz.

Nginx Yapılandırması​

  1. 80 portu için sunucu bloğu
    NGINX:
    server {
        listen 80;
        server_name example.com blog.example.com shop.example.com;
    
        return 301 https://$host$request_uri;
    }
  • return 301 301 Kalıcı yönlendirme gönderir.
  • $host değişkeni gelen isteğin başlığındaki host kısmını alır; bu sayede blog.example.com gibi alt‑domainler korunur.
  • $request_uri tam istek yolunu (path + query) içerir.
  1. 443 portu için SSL bloğu
    NGINX:
    server {
        listen 443 ssl;
        server_name example.com blog.example.com shop.example.com;
    
        ssl_certificate /etc/ssl/certs/example.crt;
        ssl_certificate_key /etc/ssl/private/example.key;
    
        # Diğer ayarlar...
    }

Kontrol​

  • curl -I http://blog.example.com/test
    Kod:
    HTTP/1.1 301 Moved Permanently
    Location: https://blog.example.com/test
  • Tarayıcıda http://shop.example.com/page?item=12 adresine girdiğinizde https://shop.example.com/page?item=12 olarak yeniden yönlendirildiği görülür.

Yeniden Yükleme​

Yapıyı değiştirdikten sonra
Bash:
sudo nginx -t   # Test
sudo systemctl reload nginx
komutları ile doğrulayarak yeniden yükleyin.

Soru: Alt‑domain desteğini tek server_name _; ile yapmak mı yoksa her domaini listelerken korumayı tercih etmek mi daha verimli olur?
 
Geri
En Üst