Plesk Kullanılan Sunucularda Mail Web ve Veritabanı Nasıl Ayrılır?

Birçok Plesk altyapısı, kolay kurulum avantajı nedeniyle mail, web ve veritabanı servislerinin tamamının tek bir sunucu üzerinde çalıştığı bir yapı ile başlatılır. Bu senaryoda siteler yayınlanır, e-posta servisleri devreye alınır ve tüm veritabanı işlemleri aynı sunucu üzerinden yürütülür.

Zamanla artan trafik, çoğalan web siteleri ve büyüyen veritabanı sorguları ise sistem kaynaklarını zorlamaya başlar ve performans sorunları kendini göstermeye başlar.

Servis Ayrımı Ne Anlama Gelir?

Plesk kullanılan standart sunucu yapılarında web, mail ve veritabanı servisleri çoğu zaman aynı anda tek bir sunucu üzerinde çalışır. Web katmanında Apache veya Nginx ile birlikte PHP-FPM süreçleri aktifken, mail tarafında Postfix, Dovecot ve spam filtreleri yoğun şekilde disk ve ağ kullanımı yapar. Veritabanı katmanında ise MySQL veya MariaDB servisleri sürekli bellek ve disk erişimi gerektirir. Mail, web ve veritabanı servislerini ayırmak, bu servislerin her birinin kendi kaynaklarına sahip ayrı sunucular üzerinde çalıştırılması anlamına gelir.

Web Sunucusu Ayrı Bir Rol Olarak Nasıl Yapılandırılmalı?

Plesk kullanılan yapılarda web sunucusu ana yönetim katmanı olarak görev alır ve bu sunucuda sadece web servisleri bulunur. Apache veya Nginx, PHP-FPM süreçleri ve web dosyaları bu sistem üzerinde çalışır. Mail ve veritabanı servisleri devre dışı bırakılarak kaynak kullanımı azaltılır.

Bu yapı sayesinde PHP süreçleri daha dengeli bir çalışma düzenine kavuşur. Trafik dalgalanmaları mail veya veritabanı tarafında oluşabilecek gecikmelere yol açmaz. WordPress, WooCommerce ve özel uygulama barındıran sistemlerde bu iyileşme doğrudan hissedilir.

Mail Sunucusunun Ayrı Çalışması Neden Önemlidir?

Mail servisleri tek başına çalıştığında dahi ciddi sistem kaynakları tüketebilir. Spam saldırıları, toplu e-posta gönderimleri ve mail kuyrukları disk ve CPU kullanımını yükseltir. Bu yük web sunucusuna yansıdığı anda tüm sistemin yavaşladığı açık şekilde hissedilir.

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

Veritabanını Ayrı Bir Sunucuya Almak Neden Faydalıdır?

Veritabanı servisleri, özellikle sorgu yoğunluğu yüksek olan sistemlerde sürekli bellek ve disk erişimi yapar. Aynı sunucuda web ve mail servisleri de çalışıyorsa bu durum performans sorunlarına, gecikmelere ve kilitlenmelere sebep olabilir.

Veritabanı ayrı bir sunucuya taşındığında tüm RAM ve disk kaynakları yalnızca MySQL veya MariaDB servislerine tahsis edilir. Plesk üzerinden remote database server tanımlanarak gerekli bağlantı yapılandırılır.

Servis Ayrımı İçin Ön Hazırlık

Mail, web ve veritabanı servislerinin ayrılabilmesi için en az üç sunucuya ihtiyaç duyulur. Plesk kurulu ana sunucu web sunucusu olarak kullanılır ve A sunucusu olarak belirlenir. Veritabanı için yeni bir Linux sunucu B, mail servisleri için ise farklı bir Linux sunucu C devreye alınır. Bu sunucuların tamamında root erişimi bulunmalı ve aynı ağda ya da karşılıklı erişilebilir IP’ler üzerinden iletişim sağlanmalıdır.

Veritabanını Ayrı Sunucuya Taşıma İçin İlk Kurulum

Bu aşamada, Plesk kurulu ana sunucudan veritabanı yükü ayrılarak Sunucu B üzerinde bağımsız bir MariaDB servisi kurulur. Sunucu B’ye SSH ile bağlandıktan sonra gerekli paketler yüklenir.

sudo apt update
sudo apt install mariadb-server -y

MariaDB’nin dış ağdan erişilebilir olması için yapılandırma dosyası açılır.

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

Dosya içerisinde 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 düzenlenir.

bind-address = 0.0.0.0

Ayarların uygulanması için servis yeniden başlatılır.

sudo systemctl restart mariadb

Remote Database İçin Kullanıcı Tanımlama

Plesk’in veritabanı sunucusuna uzaktan bağlanabilmesi için MariaDB üzerinde gerekli kullanıcı yetkileri verilmelidir. Bu işlem root kullanıcı ile gerçekleştirilir.

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.

Sunucu C Üzerinde Mail Servislerinin Konumlandırılması

Veritabanı sunucusu ayrıldıktan sonra mail servisleri için ayrı bir sunucu yapılandırılır. Yeni sunucuya bağlanılarak Sunucu C mail sunucusu olarak devreye alınır. Bu işlem sonucunda SMTP ve IMAP servisleri Sunucu C üzerinde aktif hale gelir.

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