Üretim Ortamında WordPress Yayına Alma Rehberi (DNS, HAProxy ve Ayrıştırılmış Mimari)
Bu rehberde WordPress’i tek sunucu sınırlarından çıkarıp, üretim standartlarına uygun bir mimariye taşıyacağız.
Amaç; yük dengeleme, veritabanı ayrıştırma ve özel DNS ile yüksek erişilebilirlik sağlamaktır.
Bu Rehberde Ne Öğreneceksiniz?
- WordPress’i birden fazla sunucuya dağıtmayı
- Yük dengeleyici ile trafiği güvenli şekilde yönetmeyi
- Veritabanı ve uygulama katmanlarını ayırmayı
- Üretim ortamına uygun mimari kurmayı
Mimari Genel Bakış
Kurulum aşağıdaki sunucu rollerinden oluşur:
- Özel DNS Sunucuları (ns1, ns2)
- Veritabanı Sunucusu (db1 – MySQL)
- Uygulama Sunucuları (app1, app2 – Apache + PHP)
- Yük Dengeleyici (lb1 – HAProxy + SSL)
Sunucular, özel ağ üzerinden DNS isimleriyle haberleşir.
1. Özel DNS (Private DNS) Yapılandırması
IP adresi yerine isim kullanmak bakım süreçlerini kolaylaştırır.
BIND ile özel ağ DNS yapısı kurarak sunuculara isimle erişebilirsiniz.
Örnek DNS isimleri:
db1.tr1-node01.rabisu.cloudapp1.tr1-node01.rabisu.cloud
Bu yapı sayesinde sunucu değişimlerinde konfigürasyon dosyaları güncellenmez.
2. Veritabanı Sunucusunun Kurulması (db1)
Veritabanını ayırmak, yatay ölçekleme için kritiktir.
sudo apt-get update
sudo apt-get -y install mysql-server
- Bu komut MySQL sunucusunu kurar.
MySQL yapılandırmasında yalnızca özel ağdan dinlemesi sağlanır:
bind-address = db1.tr1-node01.rabisu.cloud
- Veritabanı ve kullanıcı oluşturma:
CREATE DATABASE app;
CREATE USER 'appuser'@'app1.tr1-node01.rabisu.cloud' IDENTIFIED BY 'sifre';
GRANT ALL PRIVILEGES ON app.* TO 'appuser'@'app1.tr1-node01.rabisu.cloud';
FLUSH PRIVILEGES;
- Bu sorgular WordPress için gerekli erişimi sağlar.
3. Uygulama Sunucularının Kurulması (app1, app2)
- Her iki sunucuda Apache ve PHP kurulur:
sudo apt-get install apache2 php5 php5-mysql libapache2-mod-php5
- Bu komut web sunucusu ve PHP bileşenlerini kurar.
- Apache sadece özel ağdan dinleyecek şekilde ayarlanır:
Listen private_IP:80
- WordPress dosyaları /var/www/html dizinine kopyalanır.
- wp-config.php içinde veritabanı adresi DNS ismiyle tanımlanır:
define('DB_HOST', 'db1.tr1-node01.rabisu.cloud');
- Dosya tutarlılığı için GlusterFS gibi senkronizasyon çözümleri önerilir.
4. HAProxy Yük Dengeleyici Kurulumu (lb1)
- Yük dengeleyici, tüm trafiğin giriş noktasıdır.
- SSL sertifikası .pem formatında hazırlanır.
sudo apt-get -y install haproxy
- Bu komut HAProxy yükler.
Örnek backend yapılandırması:
backend app-backend
redirect scheme https if !{ ssl_fc }
server app1 app1.tr1-node01.rabisu.cloud:80 check
server app2 app2.tr1-node01.rabisu.cloud:80 check
- Bu yapı istekleri iki uygulama sunucusuna dengeler.
5. Loglama ve Servis Aktivasyonu
- HAProxy logları için rsyslog üzerinden UDP dinleme açılır.
- Sonrasında servis yeniden başlatılır:
sudo service haproxy restart
- Bu komut yapılandırmayı aktif eder.
- WordPress Kurulumunun Tamamlanması
- Tarayıcıdan aşağıdaki adres açılır:
https://www.example.com/wp-admin/install.php
- Kurulum ekranı tamamlandığında sistem kullanıma hazırdır.
Sıkça Sorulan Sorular (SSS)
1. Neden özel DNS kullanmalıyım? IP değişikliklerinde tüm yapılandırmayı güncellemek yerine sadece DNS kaydı değişir.
2. Veritabanını ayırmak zorunlu mu? Küçük projelerde değil, üretim ortamında kesinlikle önerilir.
3. HAProxy SSL sonlandırma nedir? SSL çözümlemesi yük dengeleyicide yapılır, uygulama sunucuları rahatlar.
4. Kaç uygulama sunucusu ekleyebilirim? Mimari yatay ölçeklemeye uygundur, ihtiyaç kadar eklenebilir.
Sonuç
Bu rehberle WordPress’i üretim standartlarında, ölçeklenebilir ve güvenli bir mimariye taşıdınız. Yüksek trafikli projeleriniz için bu yapıyı Rabisu Bulut altyapısında hemen deneyebilirsiniz.