Teknoloji

WordPress Multisite VPS: Domain Mapping, SSL ve Performans

WordPress Multisite için VPS Ne Zaman Uygundur?

WordPress Multisite, ilişkili sitelerin tek kurulum, ortak yazılım sürümleri ve merkezi yönetim altında çalışmasını sağlar. Ajans, içerik ağı veya çok markalı bir yapı için bakım yükünü azaltabilir; ancak her sitenin aynı güncelleme ve güven modelini kabul etmesi gerekir. Birbirine güvenmeyen kiracıları yalnızca farklı alan adları ve veritabanı tablolarıyla güvenli biçimde ayırdığınızı varsaymayın.

Ağda çekirdek, eklentiler, temalar ve kullanıcı hesapları paylaşılır; sitelerin içerik tabloları, ayarları ve yükleme konumları ayrıdır. Kullanıcıların site rolleri farklı olabilir; site yöneticiliği ağ yöneticiliği vermez. Paylaşımlı hosting gerekli kontrolleri ve ölçülen kapasiteyi sağlıyorsa uygun olabilir. VPS gereksinimi site sayısından değil, kaynak, yönetim yetkisi ve izolasyon ihtiyacından doğar.

Bu rehber VPS seçimi, ağ kurulumu, domain mapping, HTTPS ve performans ayarlarını birlikte ele alır. DNS, sertifika ve uygulama yönlendirmesinin doğrulanması; kişisel yanıtların ortak önbellekten çıkarılması; her sitenin zamanlanmış işleri ve geri yükleme süreci de kurulumun parçasıdır. Örnekler kapasite veya kesintisizlik garantisi değildir; sağlayıcının yönetim kapsamını ayrıca doğrulayın.

Multisite Mimarisi için Doğru VPS Seçimi

VPS seçimi, WordPress Multisite projesinin kapasitesini ve büyüme olanaklarını etkiler. Yanlış seçilmiş CPU/RAM kombinasyonu, yetersiz disk IOPS ya da dar bant genişliği, büyüyen ağınızda performans sorunlarına dönüşebilir.

CPU ve RAM Planlaması

CPU ve RAM ihtiyacını sitelerin toplam istek yükü, eşzamanlı PHP işlemleri, veritabanı sorguları ve arka plan işleri üzerinden ölçün. Şu kapasite sınıfları yalnızca karşılaştırılabilecek varsayımsal seçeneklerdir; belirli sayıda siteyi taşıyacakları sonucunu vermez:

  • 2 vCPU ve 4 GB RAM: küçük bir pilot iş yükü için ölçüm yapılabilecek örnek bir sınıf.
  • 4 vCPU ve 8 GB RAM: daha fazla eşzamanlı iş için değerlendirilebilecek başka bir sınıf; mağaza kapasitesi ayrıca test edilmelidir.
  • 8 vCPU ve 16 GB RAM ve üzeri: daha büyük kaynak seçeneği; yavaş sorgu, yanlış önbellek veya dış hizmet sınırını kendiliğinden çözmez.

Özellikle yoğun eklenti kullanan sitelerde (sayfa oluşturucular, WooCommerce, membership eklentileri vb.) RAM kullanımınızı ciddiye alın. PHP-FPM havuz ayarlarınızla birleştiğinde, beklediğinizden daha fazla bellek tüketimi görebilirsiniz. Bu tarafı detaylı anlamak için WordPress için sunucu tarafı optimizasyon rehberimizi mutlaka gözden geçirmenizi öneririz.

Depolama: SSD/NVMe ve IOPS

Depolama ihtiyacı site sayısına ek olarak medya büyümesi, sorgular, loglar ve yedekleme trafiğine bağlıdır. Seçimde:

  • SSD/NVMe etiketinden önce gerçek iş yükündeki gecikme, IOPS, aktarım ve plan sınırlarını karşılaştırın; NVMe tek başına sabit bir performans garantisi değildir.
  • Mevcut medya ve veritabanına beklenen büyüme, geçici dosyalar ve çalışma payını ekleyin.
  • Dosya sistemi snapshot’ının uygulama tutarlı veya bağımsız yedek olduğunu varsaymayın. Veritabanı ve dosyaları uyumlu biçimde yedekleyip bağımsız bir kopyadan geri yüklemeyi test edin.

NVMe’nin performans tarafındaki gerçek etkilerini daha iyi anlamak için NVMe VPS hosting rehberimize göz atabilirsiniz.

Ağ ve Bant Genişliği

Özellikle çok dilli, çok bölgeli ya da medya ağırlıklı multisite projelerinde bant genişliği ve network kalitesi kritik hale gelir. VPS seçerken:

  • Aylık trafik kotasının yanında port hızı, paylaşılan kapasite ve aşım ücretlerini kontrol edin.
  • Hedef kullanıcı bölgelerinden gecikme ve uygulama yanıtlarını ölçün.
  • CDN ile yeniden kullanılabilir genel içeriği dağıtmayı değerlendirin; önbellek kaçırmaları ve kişiselleştirilmiş istekler için origin kapasitesini koruyun.

VPS Üzerinde WordPress Multisite Kurulumunun Temelleri

Başlangıçta desteklenen PHP ve veritabanı sürümleriyle çalışan, geçerli HTTPS sertifikasına sahip tek siteli bir WordPress kurulumu olduğunu varsayıyoruz. Kurulum parolalarını HTTP üzerinden göndermeyin. Dönüşümden önce dosyaları, veritabanını ve yapılandırmayı yedekleyin; geri dönüşü doğrulayın, kalıcı bağlantıları test edin ve etkin eklentileri ağ kurulumu sırasında devre dışı bırakın. Yeniden etkinleştirmeden önce Multisite uyumluluklarını kontrol edin.

Alt Alan Adı mı, Alt Dizin mi?

Ağ Kurulumu, uygun koşullarda alt alan adı veya alt dizin yapısı sunar; mevcut kurulum seçimleri sınırlayabilir. Resmî rehbere göre URL’de yol bulunan kurulumlarda alt alan adı seçeneği kısıtlıdır; bir aydan eski mevcut kurulumlarda alt dizin seçeneği kalıcı bağlantılar nedeniyle sunulmayabilir. Kurulu sürümün ekranını ve güncel gereksinimlerini esas alın; seçenekleri zorlayarak açmadan önce URL etkisini ve geri dönüşü planlayın.

  • Alt alan adı: site1.example.com, blog.example.com.
  • Alt dizin: example.com/site1, example.com/blog.

Her iki ağ türündeki alt siteler de ayrı alan adlarına eşlenebilir. Domain mapping üçüncü bir kurulum türü değildir. Alt alan adı yapısı, bağımsız alan adlarına wildcard sertifika kapsamı veya otomatik SEO/önbellek avantajı sağlamaz. Yapıyı marka, içerik, kullanıcı ve işletim ihtiyaçlarıyla seçin; uyumsuz sürümler veya bağımsız güven sınırları gerekiyorsa ayrı kurulumları değerlendirin.

wp-config.php için Multisite Ayarları

Aşağıdaki sabiti wp-config.php içinde “That’s all, stop editing!” satırının üstüne, bu işaret yoksa ilk require/include yüklemesinden önce eklemek Ağ Kurulumu menüsünü açar. Tek başına ağı etkinleştirmez:

define( 'WP_ALLOW_MULTISITE', true );

Araçlar > Ağ Kurulumu ekranından uygun ağ türünü seçip kurulumu başlatın. Ekran kurulumunuza özgü ek sabitler üretir. Aşağıdaki kesit, example.com kökünde alt alan adı ağı için yalnızca bir gösterimdir; kendi ekranınızın değerlerini kullanın:

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

Sabitleri eklemenin yanında sunucuya uygun yönlendirmeleri de hazırlayın. Apache’de ekranın verdiği .htaccess kurallarını uygun yapılandırmada uygulayın. Bağımsız Nginx’te WordPress sunucu yapılandırmasını oluşturup uygulamaz; yönetici ağ türüne ve kurulum geçmişine uygun kuralları ayrıca düzenler. Yeniden giriş yaptıktan sonra Ağ Yönetimi, site oluşturma, kalıcı bağlantı, medya ve eklenti işlevlerini doğrulayın.

Nginx Sanal Host (Sunucu Bloğu) Örneği

Aşağıdaki örnek, WordPress’in URL kökünde bulunduğu güncel alt alan adı ağı için HTTP uygulama yönlendirmesini gösterir; alt dizin ağına doğrudan uygulanmaz. example.com ve yollar yer tutucudur. Gerçek PHP-FPM soketini, paketinizin fastcgi_params dosyasını ve dosya izinlerini doğrulayın. Bu blok tek başına TLS, bilinmeyen host politikası veya tüm sertleştirmeyi içermez; yönetim erişimini açmadan önce HTTPS ve erişim kontrolleri hazırlanmalıdır:

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

    location ^~ /.well-known/acme-challenge/ {
        default_type text/plain;
        try_files $uri =404;
    }

    location ~ /\. {
        deny all;
    }

    location ~* /(?:uploads|files)/.*\.php$ {
        deny all;
    }

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

    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/wordpress-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Wildcard server_name, DNS kaydı veya sertifika oluşturmaz; yalnızca eşleşen hostları bu uygulamaya yönlendirir. Alt dizin ağının ek yeniden yazma kurallarını resmî WordPress Nginx rehberinden kurulum türünüze göre uyarlayın. Upload-PHP engeli genel PHP eşleşmesinden önce olmalıdır; özel yükleme yolları varsa kapsamı genişletin. ACME istisnasını yalnızca doğrulama dosyaları için kullanın. Bilinmeyen hostları ayrı varsayılan politikayla reddedin. Tam yapılandırmada nginx -t kontrolünün ardından test ortamında medya, yönetim, kalıcı bağlantılar ve engellenmesi gereken yolları doğrulayın; sözdizimi kontrolü uygulamanın çalıştığını kanıtlamaz.

Domain Mapping: Farklı Alan Adlarını Aynı Ağa Bağlamak

WordPress Multisite’in en güçlü yanlarından biri, tek bir ağ altında tamamen farklı alan adları kullanabilmenizdir. Örneğin:

  • site1.example.net, site1.example.com olarak oluşturulmuş alt siteye eşlenebilir.
  • brand.example.org, portal.example.com alt sitesinin ayrı alan adı olabilir.

DNS Tarafı: A/AAAA, CNAME ve Wildcard Kayıtları

Önce her alan adı için sahiplik veya yönetim yetkisini ve ağdaki doğru siteye atandığını doğrulayın. DNS’in sunucuya çözülmesi tek başına alan adı ekleme yetkisi sayılmaz. Temel kayıt planı:

  • example.com için gerçek IPv4 adresine A kaydı; AAAA yalnızca IPv6 yönlendirme, dinleyici, güvenlik duvarı ve TLS/uygulama yolu doğrulandıktan sonra.
  • Alt alan adı ağında sabit siteler için tekil kayıtlar kullanılabilir. Talep üzerine alt site açılıyorsa uygun wildcard kayıtlarını planlayın; ana alan adı kaydı ayrıca gerekir.
  • Her eşlenen alan adı ve kullanılan www adı için ilgili kayıtları hazırlayın; CNAME bir alan adını hedefler, IP adresini değil.
  • Mevcut hizmet taşınıyorsa MX/TXT kayıtlarını koruyun, TTL değişimini eski önbellek süresini hesaba katarak önceden planlayın ve son veri eşitlemesini DNS geçişiyle koordine edin.

DNS kayıtları konusunda emin değilseniz, önce DNS kayıtları A’dan Z’ye rehberimize göz atmanızı öneririz. Yanlış ya da eksik A/AAAA/CNAME kayıtları domain mapping sırasında erişim sorunlarına yol açabilir.

WordPress Tarafı: Site Ekleme ve Alan Adı Atama

Ağ Yönetimi’nden başlangıç adresiyle bir alt site oluşturup çalıştığını doğrulayın; örneğin site1.example.com. Ardından ayrı alan adını doğru kurulum dizinine yönlendirin ve geçerli sertifikasını hazırlayın. www kullanılıyorsa yönlendirme ve sertifika kapsamına onu da ekleyin.

Yeni alan adının DNS, sunucu yönlendirmesi ve HTTPS yolu hazır olduğunda Ağ Yönetimi > Siteler > Düzenle ekranındaki Site Adresi alanını değiştirin:

  • Örneğin https://site1.example.com adresinden https://site1.example.net adresine geçin.
  • Doğru sitenin açıldığını, oturum çerezlerini, yönetim girişini ve döngüsüz kanonik yönlendirmeleri test edin.
  • Eski host HTTPS üzerinden yeni adrese yönlendiriyorsa TLS bağlantısının kurulabilmesi için eski adın sertifikasını ve gerekli yönlendirmesini koruyun.

WordPress 4.5 ve sonrasında domain mapping çekirdek özelliğidir; ayrı eşleme eklentisi genel bir zorunluluk değildir. Ancak çekirdek yalnızca site atamasını yönetir. DNS, sanal hostlar, sertifikalar, gerekiyorsa güvenilir proxy üzerinden HTTPS algısı ve URL/çerez davranışı ayrıca doğru yapılandırılmalıdır.

Web Sunucusu Tarafı: Nginx server_name Ayarı

Eşlenen adları ilgili Nginx uygulama bloğuna ekleyin. Bu kesit yalnızca host listesini gösterir; yorum satırıyla belirtilen uygulama kuralları olmadan tam yapılandırma değildir:

server {
    listen 80;
    server_name example.com *.example.com site1.example.net brand.example.org;
    # Ortak uygulama kurallari burada gosterilmemistir.
}

İlgili hostlar aynı WordPress kurulumunu kullanabilir. Farklı sertifikalar için aşağıdaki gibi uygun TLS sanal hostları ve SNI seçimi gerekir; tek blokta çok ad yazmak sertifika dosyaları arasında otomatik seçim sağlamaz. Uygulama kurallarını ve erişim sınırlarını her etkin blokta tutarlı uygulayın.

SSL Stratejisi: Multisite’te Sertifikaları Yönetmek

Sertifika planını alan adı eşlemesinden önce hazırlayın. Yeni HTTPS URL’sine geçmek için o adın aktif uç noktada geçerli sertifikayla çalışması gerekir. Ağın ana adı, alt siteler, eşlenen alan adları ve yönlendiren eski hostlar ayrı ayrı envanterde yer almalıdır.

Tek Domain, Subdomain ve Wildcard SSL

Alt alan adı ağında wildcard SSL sertifikası kullanılabilir; kapsamını doğru ayırın:

  • example.com ve kullanılıyorsa www.example.com sertifikanın kapsadığı adlar arasında bulunmalıdır; biri diğerini otomatik kapsamaz.
  • *.example.com, shop.example.com gibi tek etiketli adları kapsar; example.com, deep.shop.example.com veya site1.example.net kapsam dışındadır.
  • Ana ad ve wildcard aynı uygun sertifikada listelenebilir veya ayrı sertifikalar kullanılabilir; her durumda doğru sertifikanın sunulduğunu doğrulayın.

Let’s Encrypt ile wildcard sertifika almak için DNS-01 challenge kullanmanız gerekir. Bu süreci otomatikleştirmek için hazırlanmış rehberimizi adım adım takip edebilirsiniz: Let’s Encrypt wildcard SSL otomasyonu.

Her Site İçin Ayrı Domain: SAN mı, Tek Tek Sertifika mı?

site1.example.net ve brand.example.org gibi ayrı alan adları için şu seçenekleri karşılaştırın:

  • SAN sertifikası: gerekli adlar tek sertifikada listelenir; CA sınırları, alan adı yetkisi ve ortak yenilemenin etkisi değerlendirilir.
  • Ayrı DV sertifikaları: her ad grubu için bağımsız yenileme ve dağıtım kurulabilir. Aynı IP’de doğru sertifika seçimi, uygun TLS sanal hostları ve SNI yapılandırmasına bağlıdır.

Let’s Encrypt oran limitlerine takılmadan çok alan adına sertifika yönetmek için, çok alan adında SSL ve SAN/wildcard stratejileri yazımızı incelemenizde fayda var.

HTTP-01 vs DNS-01: Hangi ACME Challenge Ne Zaman?

Multisite ağlarında özellikle domain mapping senaryolarında, SSL otomasyonunda hangi challenge türünü kullanacağınız önemli hale gelir:

  • HTTP-01: 80. porttaki ACME doğrulama yolunun doğru yanıtı vermesi gerekir. Yayımlanan adresleri, proxy/CDN davranışını ve birden fazla uç noktayı kontrol edin. Wildcard sertifika vermez.
  • DNS-01: doğrulama adında TXT kaydıyla alan adı kontrolünü kanıtlar. Let’s Encrypt wildcard sertifikaları için DNS-01 kullanılır. Her kiracı alanında yetkili API erişimi veya uygun doğrulama delegasyonu gerekir; tek seferlik manuel TXT kaydı otomatik yenileme değildir.
  • DNS/API kimlik bilgilerini dar yetkiyle koruyun. Yenilemeye ek olarak sertifikanın aktif sunucuya dağıtımını, gerekiyorsa yeniden yüklemeyi ve başarısızlık uyarılarını test edin.

Bu challenge türlerinin artı/eksi yönlerini detaylı anlattığımız ACME challenge türleri rehberimize göz atmanız, uzun vadeli bir SSL stratejisi kurarken çok işinize yarar.

Nginx’te SNI Tabanlı Çoklu Domain SSL Örneği

Aşağıdaki SNI kesiti Nginx 1.25.1 ve sonrasında HTTP/2 modülü bulunan bir kurulumun sözdizimini gösterir. Her alan adı kendi sertifikasına sahip olabilir. Yollar ve adlar örnektir; ortak uygulama kuralları burada gösterilmemiştir:

server {
    listen 443 ssl;
    http2 on;
    server_name example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    # Ortak WordPress uygulama kurallari burada gosterilmemistir.
}

server {
    listen 443 ssl;
    http2 on;
    server_name site1.example.net;
    ssl_certificate /etc/letsencrypt/live/site1.example.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/site1.example.net/privkey.pem;
    # Ortak WordPress uygulama kurallari burada gosterilmemistir.
}

İki blok aynı WordPress kökünü ve gerekli uygulama/erişim kurallarını kullanmalıdır. Nginx, sertifika seçiminin yanında HTTP yönlendirmesi, PHP aktarımı ve erişim politikasını da uygular. Sertifika zinciri, ana makine kapsamı, HTTP→HTTPS yönlendirmesi, karma içerik ve giriş çerezlerini test edin. Veritabanındaki URL değişikliklerini yedek alarak, site kapsamını belirleyerek ve serileştirilmiş veriyi koruyan bir araçla deneyin; tüm ağa körlemesine arama/değiştirme uygulamayın.

Performans Ayarları: Multisite Ağı Nasıl Hafif Tutulur?

Multisite mimarisi, tek çekirdek üzerinde çok sayıda siteyi barındırdığı için performans sorunları da zincirleme etki yaratır. Bir eklentinin yaptığı ağır sorgu, aslında tüm ağınızı yavaşlatabilir. Bu yüzden VPS tarafındaki ayarları ciddiyetle yapmak gerekir.

PHP-FPM ve OPcache Ayarları

PHP-FPM ayarlarını çalışan PHP süreçlerinin bellek kullanımı, eşzamanlı iş, CPU ve veritabanı kapasitesiyle birlikte seçin. Belirli bir vCPU/RAM kombinasyonu tek başına doğru havuz değerlerini belirlemez:

  • static, dynamic veya ondemand modunu iş yüküne göre seçin; dynamic kullanıyorsanız başlangıç, boşta ve en çok süreç sayılarını birlikte ayarlayın.
  • pm.max_children sınırını yalnızca toplam RAM’i ortalama sürece bölerek belirlemeyin; veritabanı, cache, diğer işlemler ve güvenli çalışma payına yer bırakın.
  • OPcache bellek ve dosya kapasitesini gerçek betik seti, önbellek isabeti ve yeniden başlama göstergeleriyle izleyin. Ortak kod, ilgili PHP çalışma ortamında yeniden kullanılabilir; her runtime’ın sınırlarını kontrol edin.
  • Zaman damgası denetimi kapalıysa dağıtım ve geri dönüşte kodun görünmesi için açık invalidasyon veya uygun yeniden başlatma gerekir.

PHP 8.x’e geçiş ve OPcache optimizasyonu konusunda detaylı bir yol haritasına ihtiyacınız varsa, PHP 8.x yükseltme kontrol listemiz iyi bir başlangıç noktasıdır.

Nesne Önbelleği: Redis veya Memcached

Kalıcı nesne önbelleği, uygun iş yükünde tekrar eden veritabanı işlemlerini azaltabilir. WordPress’in varsayılan nesne önbelleği tek isteğin ömrüyle sınırlıdır; Redis/Memcached gibi kalıcı bir arka uç için uyumlu entegrasyon gerekir. Nesne önbelleği kurmak uygulama oturumlarını otomatik taşımaz ve siparişler için kalıcı kayıt deposu oluşturmaz.

  • Bakımı süren, Multisite uyumlu bir drop-in/eklenti seçin; kurulumlar ve siteler arasında anahtar ayrımını ve bilinçli paylaşılan global grupları doğrulayın.
  • WP_CACHE_KEY_SALT gibi ayarlar entegrasyona bağlıdır; tek bir global prefix’in tüm site ayrımını sağladığını varsaymayın.
  • Arka uca erişimi sınırlandırın; farklı key önekleri tüm cache’i okuyabilen kullanıcıya karşı güvenlik izolasyonu sağlamaz.
  • Bellek, TTL, tahliye, invalidasyon ve arka uç arızasında uygulama davranışını ölçün; cache isabeti kadar doğruluğu da test edin.

Hangi önbellek motorunu seçeceğiniz konusunda kararsızsanız, WordPress ve WooCommerce için Redis mi Memcached mi? yazımızda bu konuyu derinlemesine ele aldık.

Tam Sayfa Önbellekleme ve Mikro Önbellek

Tam sayfa önbelleği, aynı genel yanıtı paylaşabilen isteklerde PHP yükünü azaltabilir. Oturum açılmamış olması tek başına yanıtın kişisel olmadığı anlamına gelmez. Nginx FastCGI cache, uygun ters proxy veya uygulama entegrasyonu kullanırken:

  • Cache anahtarında güvenilir host, yol ve temsili etkileyen sorgu, şema, dil veya para birimi gibi girdileri değerlendirin; host+yol her uygulama için yeterli değildir.
  • Giriş, yönetim, hesap, sepet, ödeme ve diğer kişiselleştirilmiş yanıtları ortak sayfa önbelleğinden çıkarın; ilgili çerezleri ve private/no-store davranışını koruyun.
  • Farklı siteleri ve kullanıcıları birlikte test edin. İçerik güncellemesi, invalidasyon, soğuk cache ve hata yanıtlarının davranışını kontrol edin.
  • CDN kullanılıyorsa aynı gizlilik ve site ayrımı koşullarını o katmana da uygulayın.

1–5 saniyelik mikroönbellek yalnızca güvenle paylaşılabilen genel yanıtlar için örnek bir yaklaşımdır. Kısa süre, özel içeriği güvenli hale getirmez; kullanıcı panellerini, sepetleri ve kişisel sayfaları ortak mikroönbelleğe almayın. Nginx mikroönbellekleme rehberi ayrıntı sağlar; anahtar, çerez ve geçersizleştirme kurallarını uygulamanızda doğrulayın.

Veritabanı Optimizasyonu

Multisite, site içerikleri için wp_2_posts ve wp_3_options gibi tablolar kullanır; önekler kuruluma bağlıdır. Kullanıcı ve ağ tabloları paylaşılabilir. Tek siteyi geri yüklemek veya taşımak bu ortak veriyi dikkate almalıdır:

  • Gereksiz bileşenleri bağımlılık ve veri ihtiyacını kontrol ederek kaldırın; sorgu planlarını, bağlantı sayılarını ve kilit beklemelerini inceleyin.
  • Slow query log’u uygun süre, maliyet ve erişim sınırlarıyla kullanın; hassas sorgu verilerini herkese açık bırakmayın.
  • Options kayıtlarının kaynağını ve kullanımını doğrulayın. Uzun veya autoload edilmiş diye rastgele silmeyin; serileştirilmiş veri yapısını koruyun.
  • InnoDB belleğini diğer servislerle birlikte bütçeleyin. MySQL 8’de eski query_cache ayarları kaldırılmıştır; MariaDB’deki query cache ayrı, sürüm/derleme ve iş yüküne bağlı bir özelliktir.

ProxySQL ile MySQL okuma/yazma ayrımı rehberi daha büyük ağlar için değerlendirme çerçevesi sunar. Replika eklemek uygulamanın okumalarını otomatik taşımaz veya otomatik failover sağlamaz. Replikasyon gecikmesi, yazıdan sonra okuma tutarlılığı, bağlantılar ve arıza geçişini ayrıca tasarlayın; bu katmanları ölçülmüş bir ihtiyaç olmadan eklemeyin.

Her Sitenin Zamanlanmış İşlerini Çalıştırmak

WP-Cron sürekli çalışan bir zamanlayıcı değildir; ziyaretçi istekleri zamanı gelen işleri tetikleme fırsatı oluşturur. Her istekte tüm işler çalışmaz. Sistem zamanlayıcısı trafiğe bağımlılığı azaltabilir, ancak Multisite’te her alt sitenin iş kuyruğu ayrı ele alınmalıdır:

  1. Aktif siteleri ve işlerin son teslim sürelerini envantere alın. Yalnızca ana sitenin wp-cron.php adresini çağırmak tüm alt sitelerin işlerini kapsamaz.
  2. Her site bağlamında uygun çağrıyı veya kurulu sürümün desteklediği WP-CLI yöntemini yapılandırın. Doğru uygulama kullanıcısı, PHP ortamı ve yolu kullanın; ağ seçeneğinin tüm kararlı sürümlerde bulunduğunu varsaymayın.
  3. Çakışan çalışmaları, uzun süren işleri, başarısızlıkları ve yeni eklenen siteleri izleyin. Sürecin başlaması yerine işlerin tamamlandığını doğrulayın.
  4. Yerine geçen zamanlayıcı bütün siteler için doğrulandıktan sonra DISABLE_WP_CRON ayarıyla ziyaretçi isteğinden tetiklemeyi kapatın. Çalışma sıklığını gerçek iş gereksinimleriyle belirleyin.

WP-Cron ve sistem cron kurulumu rehberi geçişi anlatır. Multisite’te site kapsamını ayrıca uyarlayın; mağaza eklentilerinin kendi iş kuyrukları varsa onların gereksinimlerini de kontrol edin. Zamanlayıcının varlığı, e-postanın gönderildiği veya ödeme arka plan işinin tamamlandığı anlamına gelmez.

Güvenlik ve İzleme: Tek Sorunla Tüm Ağı Riske Atmamak

Multisite’in bir avantajı tek çekirdek olmasıysa, güvenlik tarafında en büyük riski de yine budur: Bir zafiyet, tüm ağı etkileyebilir. Bu nedenle VPS seviyesinden WordPress katmanına kadar güvenliği katmanlı düşünmek şart.

VPS Seviyesinde Güvenlik

  • SSH: anahtar erişimini ve kurtarma yolunu test etmeden eski yöntemi kapatmayın. Desteklenen güçlü kimlik doğrulama ve ağ kısıtlamalarını değerlendirin.
  • Güvenlik duvarı: IPv4 ve IPv6’da yalnızca gereken portları açın; veritabanı/cache erişimini sınırlandırın ve proxy kaynaklarını doğru tanımlayın.
  • Güncellemeler: desteklenen OS, PHP, web sunucusu ve veritabanı sürümlerini kullanın; acil güvenlik yamalarını rutin pencereye kadar ertelemeyin.
  • Yönetim, izleme, yedek ve olay müdahalesinde kimin sorumlu olduğunu; ağ düzeyi DDoS korumasını sağlayıcıyla ayrıca netleştirin.

Bu konuda pratik ve uygulanabilir bir yol haritası için VPS sunucu güvenliği rehberimizi mutlaka okumanızı öneririz.

WordPress Katmanında Sertleştirme

Ağ yönetimi yetkisini sınırlayın; site yöneticilerini gereksiz yere super admin yapmayın. Güçlü benzersiz parolalar, desteklenen 2FA ve güvenli kurtarma erişimi kullanın. Dosya izinlerini sahiplik ve PHP çalışma kullanıcısıyla birlikte seçin. XML-RPC veya wp-admin kısıtlamaları getirirken yayın araçları, gerekli AJAX/API uçları ve yönetim işlerini test edin.

Ek uygulama kontrolleri:

  • DISALLOW_FILE_EDIT, paneldeki tema/eklenti düzenleyicisini kapatır; tüm dosya yazmalarını veya açıklardan yararlanılmasını engellemez.
  • Uploads dizinlerindeki çalıştırılabilir dosya politikasını hem izinler hem web sunucusu düzeyinde doğrulayın; özel yolları unutmayın.
  • Giriş denemelerini uygun oran sınırlama ve kimlik doğrulamayla koruyun; proxy arkasında doğru istemci IP’sinin kullanıldığını kontrol edin.
  • Çekirdek, tema, eklenti, mu-plugin ve drop-in güncellemelerini takip edin; ortak bileşen değişikliğinin birden fazla siteye etkisini test edin.

WordPress güvenlik sertleştirme rehberi ilgili kontrolleri açıklar. Multisite yetkilerini ve ortak yazılım sınırlarını ayrıca değerlendirin. Mağazalar için ödeme mimarisi, hassas veri kapsamı ve geçerli yükümlülükler ayrı incelenmelidir; VPS, HTTPS veya bu ayarlar tek başına PCI DSS uyumluluğu kanıtı değildir.

Loglama ve İzleme

Bir sitedeki gecikmeyi yalnızca o sitenin eklentisine bağlamayın. Uygulama ölçümlerini ortak kaynak ve bağımlılık metrikleriyle ilişkilendirin:

  • CPU, bellek baskısı, disk gecikmesi ve ağ sınırlarının yanında p95/p99 yanıt süresi, hata oranı, veritabanı bağlantıları, cache isabeti ve geciken işleri izleyin.
  • Gerekli web/PHP-FPM loglarını erişimi sınırlı bir yerde saklayın; saklama süresi ve disk kullanımını yönetin.
  • Üretimde hata ayrıntılarını ziyaretçiye göstermeyin. Gerekli tanılama loglarını kontrollü süreyle açın ve web’den indirilemediğini doğrulayın.
  • Alarmların gerçek sorumluya ulaştığını ve yanıt sürecinin çalıştığını test edin.

Daha ileri seviyede Prometheus + Grafana gibi çözümlerle metrik izleme kurmak, büyüyen Multisite ağları için büyük konfor sağlar; bunun temellerini VPS izleme ve alarm kurulumu rehberimizde anlattık.

Örnek Ajans Senaryosu ve Kurtarma Planı

Varsayımsal bir ajansın 10–15 ilişkili kurumsal sitesi yönettiğini ve portföyüne yeni siteler eklediğini düşünelim. Bunlar DCHost’ta ölçülmüş müşteri sonuçları değildir. Ayrı kurulumlar şu işleri çoğaltabilir:

  • Onlarca farklı panel,
  • Farklı PHP sürümleri,
  • Takibi zor güncellemeler,
  • Dağınık yedekler

Bu farklılıklar merkezi yönetime geçme gerekçesi olabilir; ancak sitelerin ayrı kalmasını gerektiren sürüm, sahiplik veya güvenlik ihtiyaçlarını önce değerlendirin.

Multisite’in uygun bulunduğu bu örnekte, test edilecek mimari şöyle olabilir:

  • Ölçümlerle boyutlandırılmış bir VPS; 4 vCPU ve 8 GB RAM yalnızca denenebilecek bir örnektir, site sayısı kapasite garantisi değildir.
  • Yetkisi doğrulanmış alan adlarıyla eşlenen, uyumlu yazılım sürümlerini paylaşan siteler.
  • Gerekli ana/wildcard veya ayrı sertifikaları kapsayan otomatik yenileme, dağıtım ve uyarılar.
  • Doğrulanmış site anahtarlarıyla nesne cache’i ve kişisel yanıtları dışlayan sayfa cache’i; kazançlar testle ölçülür.
  • Her siteyi kapsayan zamanlayıcı ve bağımsız kopyadan doğrulanmış geri yükleme süreci.

Yeni site eklemek; DNS, domain yetkisi, sertifika, cache, kullanıcı rolü ve zamanlanmış işleri de kapsamalıdır. Dikey büyütmenin yeniden başlatma, depolama ve ücret koşullarını sağlayıcıyla doğrulayın. Yatay büyümede oturum, yüklemeler, cache, veritabanı, dağıtım ve arıza toleransı ayrıca tasarlanır.

Yedek, Taşıma ve Tek Siteyi Geri Yükleme

Tüm ağın veritabanını, medya ve özel kodunu, gerekli yapılandırma ve erişim bilgilerini tutarlı biçimde yedekleyin. Bağımsız offsite kopya ve erişim ayrımı sağlayın. Sıklık ve saklama süresini kabul edilebilir veri kaybı ve geri dönüş süresiyle seçin; günlük yedek aktif mağazalar için yetersiz olabilir. Kısıtlı ortamda tam ağ ve tek site geri yüklemelerini ayrı ayrı deneyin; bir alt siteyi kurtarmak için canlı ağın tüm veritabanını eski kopyayla ezmeyin.

Mevcut bağımsız siteleri birleştirirken içerik dışa aktarımı tüm eklenti ayarlarını, kullanıcıları veya siparişleri taşımaz. Multisite uyumlu bir yöntemle tablo/kimlik eşlemesini, medyayı ve serileştirilmiş URL verisini kontrol edin. Pilot geçiş yapın; gerçek ödeme, e-posta ve webhook yan etkilerini testte engelleyin. Son yazmaların korunmasını, veri eşitlemesini, DNS önbellek çakışmasını, yönlendirmeleri ve geri dönüşü planlayın.

WordPress Multisite için Uygulanabilir Kontrol Listesi

Önce sitelerin ortak yazılım ve yönetim modeline uygunluğunu değerlendirin. Ölçülmüş kapasite ve desteklenen bir HTTPS kurulumuyla başlayın; Ağ Kurulumu’nun özel ayarlarını ve doğru sunucu kurallarını uygulayın. Domain mapping öncesinde DNS, alan adı yetkisi ve sertifikaları doğrulayın. Önbellekte site ve kullanıcı ayrımını, her sitenin işlerini ve yedekten geri dönüşü test edin.

DCHost veya başka bir sağlayıcıdan hizmet isterken kaynak, yönetim erişimi, sertifika otomasyonu ve bakım ihtiyaçlarını somutlaştırın. Bir VPS planının uygulama taşıma, güvenlik incelemesi veya sürekli yönetim içerdiğini varsaymayın; görevleri ve ücretleri ayrıca doğrulayın.

Multisite’i ilgili siteler için kontrollü bir pilotla değerlendirin. Ortak güncelleme ve güven sınırları uygun değilse ayrı kurulum veya daha güçlü izolasyon seçin. Amaç yalnızca tek panelde toplamak değil; sorumluları belli, alan adları ve verileri doğru eşlenen, ölçülen ve geri yüklenebilen bir yapı kurmaktır.

Sıkça Sorulan Sorular

VPS her Multisite için zorunlu değildir. Paylaşımlı plan gerekli ağ türünü, alan adı/sertifika yönetimini, zamanlanmış işleri ve ölçülen kapasiteyi sağlıyorsa uygun olabilir. VPS’i özel ayar, kaynak veya yönetim ihtiyacı gerektiriyorsa değerlendirin; erişim ve kaynak garantileri plana bağlıdır. Multisite ortak kod ve yetki modelini paylaşır, birbirine güvenmeyen kiracılar için tek başına güvenlik izolasyonu sağlamaz. Uyumsuz sürümler veya bağımsız işletim gereksinimlerinde ayrı kurulumlar daha uygun olabilir.

Sabit bir alt site listesi için tekil DNS kayıtları kullanılabilir; talep üzerine alt alan adı oluşturulan ağlarda wildcard planlanır. Domain mapping için her bağımsız alan adının DNS’i, yetkisi, sanal hostu ve sertifikası ayrıca hazırlanır. Wildcard DNS ana alan adı kaydının yerini tutmaz, site veya sertifika oluşturmaz; mevcut kayıtlar eşleşmeyi etkileyebilir. A kaydı IPv4, AAAA IPv6 içindir. AAAA yayımlamadan önce ilgili ağ, dinleyici, güvenlik duvarı ve TLS/uygulama yolunu doğrulayın.

Gerekli adları envantere alın. *.example.com, shop.example.com gibi tek etiketli adları kapsar; ana alan adı, daha derin adlar ve bağımsız domainler kapsam dışıdır. Ana ad ve wildcard uygun bir sertifikada birlikte listelenebilir; eşlenen domainler için SAN veya ayrı sertifikalar seçilebilir. Let’s Encrypt wildcard için DNS-01 gerekir. Aynı IP’de doğru SNI/sanal host seçimini, yetkili DNS otomasyonunu, yenileme ve aktif sertifika dağıtımını test edip izleyin; yalnızca sertifika almak tüm HTTPS yolunun çalıştığını kanıtlamaz.

Yanıt süresi ve hata oranını CPU, bellek baskısı, disk gecikmesi, PHP kuyruğu, veritabanı bağlantıları ve cache göstergeleriyle birlikte inceleyin. Gereken logları kontrollü süre ve erişimle toplayın; yavaş sorguların planlarını ve kilitleri araştırın. Ölçülen darboğaza uygun değişiklik yapıp aynı iş yüküyle tekrar test edin. Önbellekte farklı site/kullanıcı ayrımı ile sepet ve kişisel yanıtların dışlanmasını kontrol edin. Sistem cron’una geçişte her sitenin işlerini doğrulamadan ziyaretçi tetiklemesini kapatmayın.

Evet, uygunluk ve veri eşlemesi doğrulanırsa mümkündür. Tema/eklenti sürümlerini, kullanıcıları, site kimliklerini, tabloları, medyayı ve özel veriyi Multisite uyumlu bir yöntemle taşıyın; bağımsız veritabanını ortak ağa körlemesine kopyalamayın. Önce pilot ve geri yükleme testi yapın. Domain yetkisi, DNS/sunucu/TLS, serileştirilmiş URL değişiklikleri, giriş ve görevleri kontrol edin. Son yazmaların korunmasını, veri eşitlemesini, DNS geçişini, yönlendirmeleri ve geri dönüşü planlayın. Bir siteyi kurtarırken diğer sitelerin ortak verisini ezmeyin.
↑