WordPress sitesini sürekli açık tutmak için pratik bir yapılandırma kılavuzu.
WordPress sitenizi 7/24 erişim için yapılandırmaya yönelik eksiksiz bir kılavuz; güvenlik ayarları ve izleme de dahil.

WordPress sitesini sürekli açık tutmak için pratik bir yapılandırma kılavuzu.

Bu makale, WordPress sitenizi 7/24 erişim için nasıl yapılandıracağınızı öğretecek ve güvenlik ve izleme önerilerini içerecektir.
0 Hisse senetleri
0
0
0
0

Giriş — «Sürekli Erişilebilir Bir WordPress Sitesini Yapılandırmak İçin Pratik Bir Kılavuz» Neden Önemli?

Günümüz dünyasında erişim 24/7 WordPress tabanlı bir site, işletmeler, çevrimiçi mağazalar, SaaS projeleri ve yüksek trafikli bloglar için olmazsa olmazdır. Bu makale, sitenizin sürekli çalışır durumda kalması için bir mimari, güvenlik, önbellekleme, izleme ve yedekleme stratejisi oluşturmaya yönelik kapsamlı ve pratik bir kılavuzdur.

Yüksek kullanılabilirlik için tasarım prensipleri

Sürekli erişilebilir bir WordPress sitesine sahip olmak için, birden fazla yedekleme katmanı uygulamanız gerekir. Bu katmanların doğru kombinasyonu, arıza noktalarını azaltır ve hata toleransını artırır.

  • Yük Dengeleyici: Trafiği birden fazla web düğümü arasında dağıtmak.
  • Birden Çok Web Düğümü: Aynı yapılandırmaya sahip birden fazla Nginx/PHP-FPM sunucusu.
  • Replikasyonlu Veritabanı: Ana/Okuma Kopyası veya Galera/Birincil Kopya kümesi.
  • Paylaşımlı depolama veya Nesne Depolama: Yüklemeler (wp-content/uploads) S3 uyumlu veya NFS'ye yapılır.
  • CDN: Statik sayfaları uç noktalarda önbelleğe alın ve dağıtın.
  • İzleme ve sağlık kontrolleri: Masa Tenisi Sağlık Değerlendirmesi ve İyileşme Otomasyonu.

Bu kılavuzu sağlayan şirketin 100'den fazla yıllık deneyimi bulunmaktadır. 85 küresel lokasyonBulut sunucu, yük dengeleyici, CDN ve BGP ağı, düğümleri uygun konumlara yerleştirmek için hizmetler sunar; örneğin: Ticaret — borsalara düşük ping süresine sahip konumlar; Oyun — oyunculara yakın konumlar; Yapay zeka ve işleme — GPU'lara sahip konumlar.

WordPress için önerilen mimari tasarım her zaman mevcuttur.

Temel seçenek (küçük ve orta ölçekli web siteleri için)

  • Bir VPS veya bulut sunucusu ile Nginx + PHP-FPM + MariaDB
  • Nesne önbellekleme için Redis/Memcached
  • Statik dosyalar için CDN
  • Günlük anlık görüntüler ve veritabanı yedeklemeleri

Gelişmiş seçenek (ticari ve yoğun trafiğe sahip siteler için)

  • Yük dengeleyicinin arkasında 2+ Webnode (otomatik ölçeklendirme)
  • Birincil Veritabanı + Okuma Kopyaları veya Galera Kümesi
  • Yüklemeler için Nesne Depolama (S3 uyumlu)
  • Oturum ve nesne önbelleği için Redis kümesi
  • WAF ve DDoS Saldırılarına Karşı Koruma
  • Güvenli dağıtım için CI/CD
  • İzleme (Prometheus/Grafana + Alertmanager) ve Çalışma Süresi Kontrolleri

Adım adım: Ubuntu 22.04'te temel kurulum ve yapılandırma (pratik örnek)

Bu, başlangıç için tek düğümlü bir örnek senaryodur; yüksek kullanılabilirlik için aynı yapılandırmayı birden fazla düğümde kullanın.

Temel kurulum

sudo apt update && sudo apt upgrade -y
sudo apt install nginx certbot python3-certbot-nginx -y
sudo apt install mariadb-server -y
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-redis php-imagick -y
sudo systemctl enable --now nginx php7.4-fpm mariadb

Not: PHP paket adı farklı bir sürüm olabilir; örneğin php8.1 Veya php8.2 Kullanmak.

MariaDB'yi Güvenli Hale Getirme ve WordPress Veritabanı Oluşturma

sudo mysql_secure_installation

MySQL/MariaDB konsolunda şu komutu çalıştırın:

CREATE DATABASE wp_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPasswordHere!';
GRANT ALL PRIVILEGES ON wp_database.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

WordPress için Nginx Yapılandırması (Örnek Dosya)

cat > /etc/nginx/sites-available/example.com <<'EOF'
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.php index.html;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }
}
EOF
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
sudo nginx -t && sudo systemctl reload nginx

Let's Encrypt ile SSL'i Etkinleştirme

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

WP-Cron'u devre dışı bırakıp gerçek Cron'u kurma

İçinde wp-config.php Aşağıdaki değeri ekleyin:

define('DISABLE_WP_CRON', true);

Ardından sunucu cron görevini periyodik olarak çalışacak şekilde ayarlayın:

sudo crontab -u www-data -e
*/5 * * * * php /var/www/example.com/wp-cron.php > /dev/null 2>&1

WP-CLI'yı Yükleme ve WordPress'ü Komut Satırından Kurma

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

cd /var/www/example.com
wp core download --locale=fa_IR
wp core config --dbname=wp_database --dbuser=wp_user --dbpass='StrongPasswordHere!' --dbhost=localhost --dbprefix=wp_
wp core install --url="https://example.com" --title="وب‌سایت من" --admin_user=admin --admin_password='AdminPass!' [email protected]
sudo chown -R www-data:www-data /var/www/example.com

Önbellekleme ve hızlandırma

En yüksek performansı ve yük azaltımını elde etmek için OPcache, Redis ve CDN'yi birlikte kullanın.

  • Redis Nesne önbelleği ve oturum için
  • OPcache php.ini dosyasında aşağıdaki ayarlar yer almalıdır:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

Güvenilir bir önbellekleme eklentisi kullanın (örneğin, WP Rocket Veya W3 Total CacheDosyaların CDN ve Nesne Depolama alanına aktarılması önerilir.

Redis Kurulumu (örnek)

sudo apt install redis-server -y
sudo systemctl enable --now redis
sudo apt install php-redis -y

Ardından WordPress'e Redis Object Cache eklentisini kurun ve bağlantıyı test edin.

Operasyonel ve web uygulaması güvenliği

Katmanlı güvenlik; SSH güvenliği, güvenlik duvarı, Fail2Ban, WAF ve dosya izinlerini içerir.

SSH

Anahtar tabanlı kimlik doğrulamayı kullanın, varsayılan bağlantı noktasını değiştirin ve root girişini devre dışı bırakın:

sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl reload sshd

Güvenlik Duvarı ve Fail2Ban

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 2222/tcp
sudo ufw enable
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

Kaba kuvvet saldırılarına karşı koruma için Fail2Ban'ı, uygulama koruması için ise ModSecurity veya bulut tabanlı bir WAF'ı kullanın.

Dosyalar ve izinler

find /var/www/example.com -type d -exec chmod 755 {} \;
find /var/www/example.com -type f -exec chmod 644 {} \;

Dosyaların WordPress kontrol panelinden düzenlenmesini önlemek için:

define('DISALLOW_FILE_EDIT', true);

Şu eklentileri kullanarak: WordPress Yönetici hesapları için iki faktörlü kimlik doğrulamanın (2FA) etkinleştirilmesi önerilir.

Yedekleme ve Geri Yükleme

Önerilen strateji: Günlük veritabanı yedeklemeleri + haftalık tam site yedeklemeleri + 30 günlük çevrimdışı saklama. Hızlı kurtarma için anlık görüntüler kullanın.

MySQL dump komutu örneği

mysqldump -u wp_user -p wp_database | gzip > /backups/wp_db_$(date +%F).sql.gz

rsync ile tam yedekleme

rsync -a --delete /var/www/example.com/ /backup-server/www/example.com/

Geri yükleme işleminin sorunsuz gerçekleştiğinden emin olmak için düzenli olarak Geri Yükleme testi yapın.

İzleme ve uyarı

  • Prometheus + Grafana: CPU kaynaklarını, belleği, disk G/Ç'sini ve PHP-FPM metriklerini izleme.
  • Çalışma süresi kontrolleri: Ana sayfayı, giriş sayfasını ve API uç noktalarını UptimeRobot veya sentetik hizmetlerle kontrol edin.
  • Günlük kaydı toplama: Saldırıları analiz etmek ve düşük performansı düzeltmek için ELK yığını veya Loki/Promtail + Grafana.
  • Uyarı: Hizmet kesintileri veya artan hatalar için SMS, e-posta veya Slack üzerinden bildirimde bulunun.

DDoS ve ağ katmanı saldırılarına karşı koruma

Hassas sitelere 7/24 erişim sağlamak için ağ düzeyinde DDoS saldırılarına karşı koruma ve hız sınırlaması ile doğrulama sayfaları içeren CDN kullanın.

Ayrıca Nginx'te Hız Sınırı (Rate Limit) ayarlamayı veya bulut tabanlı bir WAF kullanmayı da düşünebilirsiniz.

Veritabanı optimizasyonu ve ölçeklenebilirlik

  • Ayar innodb_buffer_pool_size Veritabanı sunucusunun RAM'inin yaklaşık 70-801 TP3T'ye ulaşması.
  • Etkinleştir yavaş_sorgu_günlüğü Sorunlu sorguları belirlemek için.
  • Okuma işlemlerinin yoğun olduğu durumlarda yükü azaltmak için okuma kopyalarını kullanın.
  • Büyük ölçekte, hizmetlerin (veritabanı, web, önbellek, nesne depolama) ayrılması.

Belirli uygulamalar için ipuçları

  • Tüccarlar: Gecikmeyi azaltmak için borsa/işlem sunucusuna yakın bir konum seçin. Düşük ping değerine sahip özel bir işlem VPS'si kullanın ve ağı BGP ile yapılandırın.
  • Oyuncular: Düşük ping süresi, özel sunucular ve oyun topluluğuna yakın konumlar sunan oyun VPS'si.
  • Yapay zeka ve görselleştirme: Hızlı çıkarım ve işleme için grafik sunucusu (GPU). Yüksek NVMe ve yüksek veri aktarım hızına sahip ağ bağlantısı kullanır.
  • Herkese açık web siteleri: CDN, önbellekleme ve görüntü optimizasyonuna odaklanın.

Yayın öncesi son kontrol listesi

  • SSL etkinleştirildi ve test edildi.
  • WP-Cron yerine gerçek Cron.
  • Planlanmış Yedeklemeler ve Test Geri Yükleme
  • Aktif izleme ve uyarı
  • Fail2Ban ve WAF etkinleştirildi.
  • Nesne önbelleği (Redis) ve OPcache etkinleştirildi.
  • Statik dosyalar ve medya aktarımı için CDN
  • Güvenli SSH erişimi ve 2FA ile yönetici panelinin güvenliğini sağlayın.

Çözüm

Sürekli erişim sağlayan bir WordPress sitesini yapılandırmak, doğru mimari, güvenlik, önbellekleme, izleme ve yedekleme stratejisinin bir kombinasyonunu gerektirir. Yüksek performanslı bulut sunucuları, CDN, DDoS saldırılarına karşı koruma ve 85'ten fazla küresel lokasyonda dağıtım yapabilme özelliği, istikrar, hız ve güvenliği sağlayabilir.

Sıkça Sorulan Sorular

Ayrıca Şunları da Beğenebilirsiniz