Plesk’de Mail Web ve Veritabanı Ayrımı Nasıl Yapılır?

Plesk kullanılan birçok altyapıda, kurulum sürecinin pratik olması sebebiyle mail, web ve veritabanı servisleri ilk aşamada tek bir sunucu üzerinde konumlandırılır. Bu yapı içinde web siteleri barındırılır, e-posta servisleri aktif hale getirilir ve veritabanları aynı sistem kaynaklarını kullanarak çalışır.

Ancak trafik hacmi yükseldikçe, barındırılan site sayısı arttıkça veya veritabanı sorguları daha yoğun hale geldikçe, sunucu üzerinde performans düşüşleri kaçınılmaz olarak ortaya çıkmaya başlar.

Servisleri Ayırmak Ne İfade Eder?

Plesk kullanılan klasik bir sunucu yapısında web, mail ve veritabanı servisleri genellikle aynı sistem üzerinde birlikte çalışır. Web tarafında Apache veya Nginx servisleri PHP-FPM süreçleriyle birlikte çalışırken, mail tarafında Postfix, Dovecot ve spam filtreleri disk ve ağ kaynaklarını aktif şekilde kullanır. Veritabanı tarafında ise MySQL veya MariaDB servisleri sürekli bellek ve disk erişimi gerçekleştirir. Mail, web ve veritabanı servislerini ayırmak, her bir servisin kendi kaynaklarını kullandığı ayrı ve özel sunuculara taşınması anlamına gelir.

Plesk’te Web Sunucusu Konumlandırma

Plesk’in ana yönetim rolünü üstlenen sunucu web sunucusu olarak konumlandırılır ve bu sistemde yalnızca web servisleri çalıştırılır. Apache veya Nginx servisleri ile birlikte PHP-FPM süreçleri ve web dosyaları bu sunucuda yer alır. Mail ve veritabanı servisleri kapatılarak sistem üzerindeki yük minimuma indirilir.

Bu yaklaşım, PHP süreçlerinin daha stabil çalışmasını sağlar. Ani trafik artışları mail ya da veritabanı servislerinden kaynaklanan gecikmelere neden olmaz. Özellikle WordPress, WooCommerce veya özel uygulamalar barındıran altyapılarda performans farkı açıkça görülür.

Mail Servisini Ayırmak Neden Gereklidir?

Mail servisleri bağımsız çalışsa bile yüksek kaynak kullanımı oluşturabilir. Spam saldırıları, yoğun toplu mail gönderimleri ve mail kuyrukları disk ile CPU kullanımını artırır. Bu yük web sunucusuna bindiğinde, sistemin tamamında performans düşüşü yaşanmaya başlar.

Mail sunucusu ayrı bir sistem olarak konumlandırıldığında bu risk ortadan kalkar. MX kayıtları mail sunucusuna yönlendirilir

Veritabanını Ayrı Sunucuya Taşımak Ne Sağlar?

Veritabanı servisleri, özellikle yoğun sorgu alan sistemlerde yüksek oranda bellek ve disk erişimi gerçekleştirir. Aynı sunucu üzerinde web ve mail servisleri de çalışıyorsa, bu durum kaynak paylaşımı nedeniyle gecikmelere ve zaman zaman kilitlenmelere yol açabilir.

Veritabanı ayrı bir sunucuya taşındığında, tüm RAM ve disk kaynakları yalnızca MySQL veya MariaDB servisleri tarafından kullanılır. Plesk üzerinden remote database server tanımlanarak web sunucusu ile veritabanı sunucusu arasında bağlantı sağlanır.

Ayırma İşlemi Öncesi Gereksinimler

Bu mimariyi uygulayabilmek için minimum üç sunucu gereklidir. Plesk’in kurulu olduğu ana sistem web sunucusu olarak görev alır ve sunucu A olarak konumlandırılır. Veritabanı işlemleri için yeni bir Linux sunucu B, mail servisleri için ise ayrı bir Linux sunucu C hazırlanır. Tüm sunucuların root erişimine sahip olması ve ağ üzerinden birbirleriyle iletişim kurabilmesi gerekir.

Sunucu B Üzerinde Veritabanı Servisinin Hazırlanması

Bu adımda veritabanı servisleri, Plesk’in çalıştığı ana sunucudan ayrılarak Sunucu B üzerine taşınır. Öncelikle Sunucu B’ye SSH bağlantısı kurulur ve MariaDB kurulumu gerçekleştirilir.

sudo apt update
sudo apt install mariadb-server -y

Kurulumdan sonra MariaDB’nin uzak sunuculardan bağlantı kabul etmesi için yapılandırma dosyası düzenlenir.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Aşağıdaki satır tespit edilir.

bind-address = 127.0.0.1

Bu değer, dış bağlantılara izin verecek şekilde güncellenir.

bind-address = 0.0.0.0

Son olarak MariaDB servisi yeniden başlatılarak ayarlar aktif edilir.

sudo systemctl restart mariadb

Plesk Bağlantısı İçin MariaDB Yetkilendirmesi

Plesk’in veritabanı sunucusuna erişebilmesi için MariaDB üzerinde yetkilendirilmiş bir kullanıcıya ihtiyaç vardır. Bu işlem Sunucu B üzerinde root yetkisiyle yapılır.

mysql -u root
CREATE USER 'pleskdb'@'SUNUCU_A_IP' IDENTIFIED BY 'GucluBirSifre';
GRANT ALL PRIVILEGES ON *.* TO 'pleskdb'@'SUNUCU_A_IP';
FLUSH PRIVILEGES;
EXIT;

Plesk’e Yeni Veritabanı Sunucusunu Tanıtma

Sunucu A üzerindeki Plesk Panel’e giriş yapalım. Tools & Settings → Database Servers → Add Database Server olarak ilerleyelim.

Açılan ekranda

  • Host: Sunucu B’nin IP adresi
  • Tür: MySQL veya MariaDB
  • Kullanıcı adı / Şifre: Sunucu B’de oluşturduğunuz veritabanı yetkili bilgileri

Bilgileri girip kaydedelim. Bu işlemden sonra Plesk, Sunucu B’yi harici bir veritabanı sunucusu olarak kullanmaya başlar.

Mevcut Veritabanını Taşıma

Plesk Panel’e girelim. İlgili siteyi açalım ve Site → Databases yolunu izleyelim.

Mevcut veritabanını Export Dump ile yedekleyelim. Yedeğin alındığından emin olalım ve ardından veritabanını silelim.

Add Database diyelim. Sunucu olarak yeni eklediğimiz veritabanı sunucusunu seçelim. İmport Dump ile aldığımız yedeği geri yükleyelim.

Web Sitesi Ayarlarını Güncelleme

Web sitesi hala Sunucu A’da durur, ancak veritabanı artık Sunucu B’dedir. Bu yüzden bağlantı adresini güncellememiz gerekir.

WordPress için wp-config.php Güncellemesi

WordPress, veritabanı bağlantı bilgilerini wp-config.php dosyasından okur. Sunucu A’da ilgili sitenin kök dizinine girelim. wp-config.php dosyasını açalım.

Aşağıdaki satırı bulalım ve güncelleyelim.

define('DB_HOST', 'SUNUCU_B_IP');

Dosyayı kaydedelim ve çıkalım.

Laravel için .env Dosyası Güncellemesi

Proje dizinine girelim. .env dosyasını açalım. Aşağıdaki satırı düzenleyelim.

DB_HOST=SUNUCU_B_IP

Kaydedelim ve çıkalım.

Mail Servisini Ayrı Sunucuya Taşıma (Sunucu C)

Veritabanı ayrım işlemi tamamlandıktan sonra sıradaki işlem mail servislerinin ayrılmasıdır. Yeni sunucuya bağlantı sağlanarak Sunucu C mail sunucusu rolünü üstlenir. Bu adımla birlikte SMTP ve IMAP servisleri bu sunucu üzerinde çalışmaya başlar.

sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd -y

Mail trafiğinin yeni sunucuya yönlenmesi için DNS kayıtlarını düzenleyelim.

MX Kaydı

MX 10 mail.domainadi.com

SPF Kaydı

v=spf1 ip4:MAIL_SERVER_IP -all

Artık mail Sunucu C’de çalışacağı için, web sunucusundaki mail servisini kapatalım.

Sunucu A’daki Plesk Panele girelim. Domain → Mail Settings yolunu izleyelim. Mail service on this server seçeneğini kapatalım. Sunucu A artık mail alıp göndermeyecek. Tüm mail trafiği Sunucu C’ye yönlenecek.

Sık Sorulan Sorular

Veritabanını ayırdıktan sonra site çalışmazsa neyi kontrol etmeliyim?

Web sitesinin yapılandırma dosyasını kontrol edilmeli. DB_HOST alanında localhost yerine veritabanı sunucusunun IP’si yazmalıdır. Veritabanı kullanıcı adı ve şifresi doğru olmalıdır.

Veritabanı sunucusunda hangi port açık olmalı?

Sadece 3306/TCP portu açık olmalıdır. Bu port yalnızca web sunucusunun IP adresine izin verecek şekilde firewall ile sınırlandırılmalıdır.

Mail web ve veritabanını aynı anda ayırmak gerekir mi?

Gerçek sistemlerde bu işlemler aynı anda yapılmaz. En doğru yaklaşım sırasıyla yapılandırmaktır. Genellikle önce veritabanı sonra mail servisi en son olarak da web katmanı ölçeklendirilir.

DNS ayarları mail web ve veritabanı ayrımında nasıl olmalı?

DNS tarafında yalnızca mail servisleri için değişiklik yapılır. MX kayıtları mail sunucusunu gösterecek şekilde güncellenir. SPF, DKIM ve DMARC kayıtları mail sunucusuna uygun olarak düzenlenmelidir.

Yorum yapın