Plesk Altyapısında Mail Web ve Veritabanını Ayrı Yönetmek

Plesk kullanılan altyapıların büyük bir kısmı, kurulum sürecinin kolaylığı nedeniyle mail, web ve veritabanı servislerini tek bir sunucu üzerinde çalıştırarak başlar. Bu senaryoda web siteleri yayınlanır, e-posta servisleri aktif edilir ve veritabanları aynı sunucu üzerinde hizmet verir.

Ancak trafik yoğunluğu arttığında, barındırılan site sayısı yükseldiğinde veya veritabanı sorguları daha karmaşık hale geldiğinde, performans düşüşleri kaçınılmaz hale gelir.

Mail Web ve Veritabanı Servisleri

Plesk kullanılan klasik bir sunucu yapısında genellikle web, mail ve veritabanı servisleri aynı anda tek bir sistem üzerinde ç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 tüketir. Veritabanı tarafında ise MySQL veya MariaDB servisleri sürekli bellek ve disk erişimi yapar. Mail, web ve veritabanı servislerini ayırmak, her servisin kendi kaynaklarını kullandığı ayrı sunucular üzerinde konumlandırılması anlamına gelir.

Web Sunucusunun Doğru Konumlandırılması

Plesk’te ana yönetim rolünü üstlenen web sunucusunda yalnızca web servislerinin bulunması gerekir. Apache veya Nginx servisleri, PHP-FPM süreçleri ve web dosyaları bu sunucuda çalışır. Mail ve veritabanı servisleri kapatılarak sistem üzerindeki yük düşürülür.

Bu yapı PHP süreçlerinin daha dengeli çalışmasını sağlar. Trafik dalgalanmaları mail veya veritabanı taraflı gecikmelere yol açmaz. WordPress, WooCommerce ve özel uygulamaların barındırıldığı sistemlerde bu fark açık şekilde hissedilir.

Mail Servisinin Ayrı Sunucuda Çalıştırılması

Mail servisleri tek başına çalıştıkları senaryolarda bile ciddi kaynak tüketebilir. Spam saldırıları, toplu mail gönderimleri ve biriken mail kuyrukları disk ve CPU kullanımını yükseltir. Bu yük web sunucusuna yansıdığında sistem genelinde hissedilen bir yavaşlama oluşur.

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şımanın Sistem Etkisi

Veritabanı servisleri, özellikle yoğun sorgu trafiği olan sistemlerde ciddi düzeyde bellek ve disk erişimi gerçekleştirir. Aynı sunucuda web ve mail servisleri de bulunuyorsa bu durum gecikmelere ve 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ı kurulur.

Altyapı Gereksinimleri

Mail, web ve veritabanı servislerini ayırmak için en az üç sunucuya ihtiyaç vardır. Plesk’in kurulu olduğu ana sunucu web sunucusu olarak görev yapar ve A sunucusu olarak konumlandırılır. Veritabanı için yeni bir Linux sunucu B, mail servisleri için ise ayrı bir Linux sunucu C hazırlanır. Bu sunucuların tamamında root erişimi bulunmalı ve ağ üzerinden birbirleriyle erişim sağlayabilmelidir.

Plesk İçin Ayrı Veritabanı Sunucusu Oluşturma

Bu aşamada, Plesk’in çalıştığı ana sunucudan veritabanı servisleri ayrılarak Sunucu B üzerinde bağımsız bir MariaDB sunucusu kurulur. Sunucu B’ye SSH ile bağlanılır ve MariaDB kurulumu gerçekleştirilir.

sudo apt update
sudo apt install mariadb-server -y

Kurulum tamamlandıktan sonra MariaDB’nin uzak bağlantılara izin vermesi sağlanır. Bunun için yapılandırma dosyası açılır.

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

Dosyada yer alan aşağıdaki satır bulunur.

bind-address = 127.0.0.1

Bu satır, tüm IP’lerden bağlantı kabul edecek şekilde güncellenir.

bind-address = 0.0.0.0

Değişikliklerin aktif olması için servis yeniden başlatılır.

sudo systemctl restart mariadb

Plesk İçin Veritabanı Kullanıcısı Oluşturma

Plesk’in remote database server üzerinden bağlantı kurabilmesi için veritabanı tarafında özel bir kullanıcı tanımlanmalıdır. Bu işlem MariaDB root yetkisi ile yapılır.

MariaDB’ye giriş yapalım.

mysql -u root

Ardından Plesk’in kullanacağı kullanıcıyı oluşturup gerekli yetkileri verelim.

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.

Plesk Altyapısında Mail Sunucusunu Ayırma

Veritabanı sunucusu ayrıldıktan sonra mail servislerinin ayrılması bir sonraki adımdır. Yeni sunucuya bağlantı sağlanarak Sunucu C mail sunucusu olarak yapılandırılır. Yapı tamamlandığında SMTP ve IMAP servisleri bu sunucu üzerinde çalışır.

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