Dinamik Sınırsız Subdomain Nasıl Ayarlanır ve Kullanılır?

Dinamik Sınırsız Subdomain Nasıl Ayarlanır ve Kullanılır? - bimakale.com | bimakale.com
09 Ağustos 2024 Cuma - 14:29 (1 Ay önce)

Subdomain, bir ana etki alanının (domain) altında yer alan ve ana etki alanına bağlı bir alt etki alanıdır. Örneğin, "example.com" ana etki alanıysa, "blog.example.com" bir subdomain olur. Subdomain'ler genellikle ana web sitesine ek özellikler, hizmetler veya içerikler sunmak için kullanılır.

Subdomain'in Kullanım Alanları:

  1. Farklı Bölümler: Bir web sitesinin farklı bölümlerini ayırmak için kullanılır. Örneğin, "shop.example.com" bir e-ticaret bölümü, "support.example.com" ise destek sayfası olabilir.

  2. Uluslararasılaştırma: Farklı diller veya bölgeler için içerik sunmak için subdomain'ler kullanılabilir. Örneğin, "en.example.com" İngilizce içerik, "fr.example.com" Fransızca içerik sunabilir.

  3. Geliştirme ve Test: Geliştirme, test veya aşamalı yayına geçiş için farklı subdomain'ler kullanılabilir, örneğin "dev.example.com" veya "staging.example.com".

  4. SEO ve Marka Yönetimi: Arama motoru optimizasyonu (SEO) ve marka yönetimi açısından da subdomain'ler stratejik olarak kullanılabilir.

DNS ve Subdomain: Bir subdomain, DNS (Domain Name System) ayarlarıyla yapılandırılır. Her subdomain, ana etki alanının DNS ayarlarına bağlı olarak ayrı bir IP adresine yönlendirilebilir veya aynı sunucuyu kullanabilir.

Bu bilgiler ışığında, subdomain'ler bir web sitesinin organizasyonunu ve yapılandırmasını optimize etmek için oldukça faydalıdır.

Dinamik Subdomain

Dinamik subdomain, kullanıcıya özel veya dinamik olarak oluşturulan alt etki alanları anlamına gelir. Bu tür subdomain'ler genellikle web uygulamalarında, kullanıcıların veya müşterilerin özel olarak tanımlanmış içeriklerine veya hizmetlerine erişmelerini sağlamak amacıyla kullanılır.

Dinamik Subdomain'in Özellikleri ve Kullanım Alanları:

  1. Kullanıcıya Özel İçerik:

    • Dinamik subdomain'ler genellikle kullanıcı adlarına veya müşteri kimliklerine göre otomatik olarak oluşturulur. Örneğin, bir kullanıcı "john" adında bir hesap oluşturduğunda, ona özel "john.example.com" subdomain'i dinamik olarak yaratılabilir. Bu sayede kullanıcılar kendi özel alanlarına kolayca erişebilirler.
  2. SaaS Uygulamaları:

    • Yazılım hizmeti sunan (SaaS) platformlarda yaygın olarak kullanılır. Örneğin, bir proje yönetim uygulamasında her müşteri için dinamik olarak "companyname.example.com" şeklinde bir subdomain oluşturulabilir.
  3. SEO Avantajı:

    • Dinamik subdomain'ler, arama motorları tarafından ayrı birer site gibi indekslenebilir, bu da her bir subdomain'in kendine özgü SEO stratejisine sahip olabileceği anlamına gelir.
  4. Gelişmiş Yönlendirme ve Yük Dengeleme:

    • Dinamik subdomain'ler, kullanıcı trafiğini daha verimli bir şekilde yönetmek için kullanılabilir. Örneğin, farklı sunuculara veya veri merkezlerine yönlendirme yapmak için dinamik subdomain'ler kullanılabilir.

Dinamik Subdomain Nasıl Çalışır?

Dinamik subdomain'ler genellikle web sunucusu ve DNS yapılandırması ile birlikte çalışır. Bir istek geldiğinde, sunucu gelen subdomain'i analiz eder ve uygun içerik veya hizmeti sunar. Dinamik subdomain yapısında subdomain sunucunuza önceden tanımlamanıza gerek yoktur. DNS ve Sunucu yapılandırmanızı yaptıktan sonra gelen tüm istekler projenizin başlangıç dosyasına düşecektir. Bundan sonraki adım da projenize ve hayal gücünüze göre kullanıcıya subdomain e özel bilgiyi sunmak olacaktır. Örnek dinamik subdomainler musteri1.example.com, musteri2.example.com, musteri3.example.com, musteri...n.example.com

Dinamik subdomaini kullanabilmek için aşağıdaki teknikler kullanılabilir:

  1. Wildcard DNS Kaydı:

    • DNS'de bir wildcard kaydı (*).example.com yapılandırılır, böylece herhangi bir subdomain isteği sunucuya yönlendirilir.
  2. Sunucu Yönlendirme Mantığı:

    • Web sunucusu, gelen istekteki subdomain'i analiz eder ve bu subdomain'e karşılık gelen içerik veya sayfayı yükler. Bu, genellikle backend kodu veya bir yönlendirme mantığı (routing) ile gerçekleştirilir.
  3. SSL Sertifikaları:

    • Eğer HTTPS kullanılıyorsa, dinamik subdomain'ler için wildcard SSL sertifikaları veya Let's Encrypt gibi hizmetlerle otomatik olarak sertifikalar oluşturulabilir.

Özetle, dinamik subdomain'ler kullanıcıya özel deneyimler sunmak veya web uygulamalarında esnek ve ölçeklenebilir yapı kurmak için etkili bir yöntemdir.

Nasıl Uygulanır?

1. IIS'de URL Rewrite Modülünü Yükleme

Öncelikle, IIS'de URL Rewrite modülünün yüklü olduğundan emin olun. Yüklü değilse, Microsoft Web Platform Installer kullanarak yükleyebilirsiniz.

2. Web.config Dosyasını Düzenleme

İlgili sitenizin kök dizininde bir web.config dosyası oluşturun veya mevcutsa düzenleyin. Aşağıdaki URL Rewrite kuralını web.config dosyanıza ekleyin:

<configuration>
   <system.webserver>
	  <rewrite>
		 <rules>
				<rule name="Subdomain to Index">
				   <match url=".*">
					   <conditions>
							  <add input="{HTTP_HOST}" pattern="^(.*)\.yourdomain\.com$"></add>
					   </conditions>
						<action type="Rewrite" url="/index.php"></action>
					</match>
				</rule>
		 </rules>
	  </rewrite>
   </system.webserver>
</configuration>

pattern="^(.*)\.yourdomain\.com$" kısmı, subdomain'i yakalar ve tüm subdomain isteklerini index.php'ye yönlendirir. yourdomain.com yerine kendi domain adınızı koymalısınız.

  • .* ifadesi URL'nin herhangi bir bölümünü eşleştirir, bu da gelen tüm isteklerin index.php'ye yönlendirilmesini sağlar.
  • Rewrite türündeki action ile URL içeriği değiştirilmeden arka planda index.php'ye yönlendirilir.

Dosyayı kaydedin ve IIS'yi yeniden başlatın. Artık tüm subdomain istekleri otomatik olarak index.php sayfasına yönlendirilecektir.

3. IIS Üzerinde Wildcard Subdomain Yapılandırması

Cloudflare'dan gelen tüm wildcard subdomain'leri IIS üzerinde doğru şekilde yönlendirmek için IIS sunucusunda herhangi bir ek yapılandırma yapmanıza genellikle gerek yoktur. Ancak, tüm subdomain'leri dinamik olarak yönlendirmek için aşağıdaki adımları takip edebilirsiniz:

Site Binding Ayarları:

IIS'de, domain adınız için bir site ayarlayın ve bu siteye wildcard subdomain desteği ekleyin:

  • IIS Manager'da, domaininiz için oluşturduğunuz siteye sağ tıklayın ve Edit Bindings... seçeneğine tıklayın.
  • Add... butonuna tıklayarak yeni bir binding ekleyin.
  • Hostname: kısmına *.example.com yazın. Kendi sitenize ait domain adına sınırsız subdomain açar. Bu, tüm subdomain'lerinizi kapsar.

4. Cloudflare'da DNS Yönlendirme Ayarı

  • Cloudflare Dashboard'a Giriş: Cloudflare hesabınıza giriş yapın ve yönlendirme yapmak istediğiniz domaini seçin.

  • DNS Ayarlarına Gitme: Sol menüden DNS sekmesine tıklayın.

  • A Kaydı Oluşturma: IIS sunucunuzun IP adresini kullanarak bir A kaydı oluşturun.

    • Name: @ (Bu, yourdomain.com için kök domain'i temsil eder)
    • IPv4 Address: IIS sunucunuzun IP adresi
    • TTL: Auto
    • Proxy Status: Proxied (Bu, Cloudflare'ın trafiği işleyip optimize etmesini sağlar)

    Ek olarak, wildcard subdomain yönlendirmesi yapmak istiyorsanız:

    • Name: * (Bu, tüm subdomain'leri kapsar)
    • IPv4 Address: IIS sunucunuzun IP adresi
    • TTL: Auto
    • Proxy Status: Proxied
  • CNAME Kayıtları Oluşturma (Opsiyonel): Belirli subdomain'ler için yönlendirme yapmak istiyorsanız, CNAME kayıtları da ekleyebilirsiniz.

    • Name: subdomain (Yönlendirmek istediğiniz subdomain adı)
    • Target: yourdomain.com (ya da uygun başka bir domain)
    • Proxy Status: Proxied

SSL/TLS Ayarlarını Yapılandırma

Cloudflare'ın trafiği IIS sunucunuza yönlendirirken SSL/TLS sertifikası kullanmasını sağlamak için doğru SSL/TLS ayarlarını yapmanız gerekir.

  1. SSL/TLS Sekmesine Gitme: Cloudflare Dashboard'da SSL/TLS sekmesine tıklayın.

  2. SSL Modunu Seçme: Burada farklı SSL seçenekleri vardır. IIS sunucunuzda bir SSL sertifikası varsa Full veya Full (Strict) modunu seçebilirsiniz.

    • Flexible: Cloudflare, ziyaretçi ile kendi arasında SSL kullanır, ancak sunucunuza olan bağlantı HTTP olarak yapılır. (Tavsiye edilmez, çünkü sunucuya olan bağlantı şifrelenmez.)
    • Full: Hem Cloudflare ile ziyaretçi arasında hem de Cloudflare ile sunucunuz arasında SSL kullanılır.
    • Full (Strict): Aynı Full modu gibi, ancak sunucunuzdaki SSL sertifikasının geçerli ve güvenilir bir sertifika otoritesinden olması gerekir.
  3. Always Use HTTPS: Bu seçeneği aktif hale getirirseniz, Cloudflare HTTP üzerinden gelen tüm istekleri otomatik olarak HTTPS'ye yönlendirir.

NGNIX Yapılandırması

Nginx üzerinde dinamik subdomain'leri tek bir PHP dosyasına (index.php) yönlendirmek için Nginx yapılandırma dosyasında uygun bir yapılandırma yapmanız gerekecek. Bu yapılandırma, gelen tüm subdomain isteklerini index.php dosyasına yönlendirecek ve subdomain bilgilerini $_SERVER değişkenlerinde kullanılabilir hale getirecektir.

Adımlar:

  1. Server Block: Dinamik subdomain'leri yakalamak için bir server block oluşturun.
  2. Yönlendirme Ayarı: Tüm istekleri index.php dosyasına yönlendirin.
  3. Subdomain Parametreleri: Subdomain bilgisini PHP’ye iletin.

Nginx Yapılandırması

Aşağıda, Nginx yapılandırma dosyasına ekleyebileceğiniz bir örnek bulunmaktadır. Bu örnek, tüm subdomain'leri index.php dosyasına yönlendirecektir.

server {
    listen 80;
    server_name *.example.com;
    root /var/www/html;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # PHP-FPM socket dosyası, PHP sürümünüze göre güncelleyin
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SUBDOMAIN $subdomain; # Subdomain bilgisini iletin
        include fastcgi_params;
    }
}

  • server_name *.example.com: Bu yapılandırma, example.com için tüm subdomain'leri yakalar. Örneğin, sub1.example.com, sub2.example.com gibi tüm subdomain'ler bu server block'a yönlendirilir.

  • try_files $uri $uri/ /index.php?$args;: Bu satır, gelen tüm istekleri index.php dosyasına yönlendirir. Eğer istek edilen dosya veya dizin bulunmazsa, index.php dosyasına ve gelen parametrelerle birlikte yönlendirilir.

  • fastcgi_param SUBDOMAIN $subdomain;: Bu satır ile subdomain bilgisini PHP’ye $_SERVER['SUBDOMAIN'] olarak iletebilirsiniz. Bu bilgi, window.location.hostname ile PHP'de işlenebilir.

  • fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;: Bu satır PHP-FPM’nin socket dosyasını belirtir. PHP sürümünüze ve konfigürasyonunuza göre güncellenmesi gerekebilir.

Subdomain Bilgisini PHP'de Kullanma

Subdomain bilgisini PHP'de şu şekilde alabilirsiniz:

$subdomain = $_SERVER['SUBDOMAIN'] ?? '';
echo "Subdomain: " . $subdomain;

Bu yapılandırma ile, tüm subdomain istekleri index.php dosyasına yönlendirilir ve subdomain bilgisi PHP tarafında işlenebilir hale gelir.

Aynı ayarları ile yapılandır ile ASP.NET ve ASP.NET Core için de kullanılabilir.


  • Web Yazılım



Yorumlar
Sende Yorumunu Ekle
Kullanıcı
0 karakter