{"id":35987,"date":"2025-12-06T12:31:07","date_gmt":"2025-12-06T09:31:07","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/"},"modified":"2025-12-06T12:31:07","modified_gmt":"2025-12-06T09:31:07","slug":"haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/","title":{"rendered":"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi"},"content":{"rendered":"<p><body><\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in veritabanlar\u0131n\u0131n performans\u0131 ve eri\u015filebilirli\u011fi kritik \u00f6neme sahiptir. Peki, kullan\u0131c\u0131 trafi\u011fi artt\u0131\u011f\u0131nda veya bir veritaban\u0131 sunucusu ar\u0131zaland\u0131\u011f\u0131nda sisteminizin \u00e7\u00f6kmesini nas\u0131l engellersiniz? \u0130\u015fte bu noktada <strong>HAProxy port y\u00f6nlendirme<\/strong>, veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla sunucuya ak\u0131ll\u0131ca da\u011f\u0131tarak y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011flayan g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm olarak \u00f6ne \u00e7\u0131k\u0131yor.<\/p>\n<p>Modern uygulamalar, geleneksel tek veritaban\u0131 sunucusu modelinin getirdi\u011fi s\u0131n\u0131rlamalarla s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131r. \u00d6zellikle y\u00fcksek trafikli web siteleri, e-ticaret platformlar\u0131 veya ger\u00e7ek zamanl\u0131 veri i\u015fleyen sistemler i\u00e7in tek bir sunucu, performans darbo\u011fazlar\u0131, hizmet kesintileri ve veri kayb\u0131 riskleri ta\u015f\u0131r. Kullan\u0131c\u0131 say\u0131s\u0131 artt\u0131k\u00e7a, bu tek sunucuya binen y\u00fck katlanarak artar ve yan\u0131t s\u00fcreleri uzar, hatta sistem tamamen kilitlenebilir. Bir di\u011fer \u00f6nemli problem ise y\u00fcksek eri\u015filebilirliktir; tek bir sunucunun ar\u0131zalanmas\u0131, uygulaman\u0131n tamamen eri\u015filemez hale gelmesine yol a\u00e7ar ki bu, i\u015f s\u00fcreklili\u011fi a\u00e7\u0131s\u0131ndan kabul edilemez bir durumdur.<\/p>\n<p>\u0130\u015fte bu gibi sorunlar\u0131 a\u015fmak i\u00e7in <strong>HAProxy<\/strong> gibi bir y\u00fck dengeleyiciye (load balancer) ve port y\u00f6nlendirme (port forwarding) yeteneklerine ihtiya\u00e7 duyar\u0131z. HAProxy, gelen veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla veritaban\u0131 sunucusu aras\u0131nda ak\u0131ll\u0131ca da\u011f\u0131tarak y\u00fck\u00fc hafifletir. Bu sayede, tek bir sunucunun a\u015f\u0131r\u0131 y\u00fcklenmesini \u00f6nler ve her sunucunun optimum performansla \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, sa\u011fl\u0131k kontrolleri (health checks) sayesinde ar\u0131zalanan veya ula\u015f\u0131lamayan bir veritaban\u0131 sunucusunu otomatik olarak tespit edip trafi\u011fi sa\u011fl\u0131kl\u0131 sunuculara y\u00f6nlendirerek hizmet kesintilerini minimuma indirir. Bu mekanizma, uygulaman\u0131z\u0131n s\u00fcrekli eri\u015filebilir olmas\u0131n\u0131 garanti eder. Felaket kurtarma senaryolar\u0131nda da HAProxy kilit bir rol oynar; birincil veritaban\u0131 sunucusu \u00e7evrimd\u0131\u015f\u0131 kald\u0131\u011f\u0131nda, trafi\u011fi otomatik olarak yedek sunuculara y\u00f6nlendirerek uygulaman\u0131n \u00e7al\u0131\u015fmaya devam etmesini sa\u011flar. K\u0131sacas\u0131, HAProxy sadece bir y\u00fck dengeleyici de\u011fil, ayn\u0131 zamanda veritaban\u0131 altyap\u0131n\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini, dayan\u0131kl\u0131l\u0131\u011f\u0131n\u0131 ve g\u00fcvenilirli\u011fini art\u0131ran stratejik bir ara\u00e7t\u0131r.<\/p>\n<p>HAProxy, geli\u015fmi\u015f y\u00fck dengeleme algoritmalar\u0131 ve esnek yap\u0131land\u0131rma se\u00e7enekleri sunarak veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131n y\u00f6netimini kolayla\u015ft\u0131r\u0131r. \u00d6zellikle veritaban\u0131 ba\u011flant\u0131lar\u0131 gibi durum bilgisi olan (stateful) ba\u011flant\u0131lar i\u00e7in TCP katman\u0131nda etkin bir \u015fekilde \u00e7al\u0131\u015fabilmesi, onu bu t\u00fcr senaryolar i\u00e7in ideal k\u0131lar. Port y\u00f6nlendirme kavram\u0131 ise, HAProxy&#8217;nin belirli bir port \u00fczerinden gelen ba\u011flant\u0131lar\u0131, yap\u0131land\u0131r\u0131lm\u0131\u015f kurallara g\u00f6re farkl\u0131 IP adreslerindeki ve portlardaki hedef sunuculara iletmesidir. Bu sayede uygulama sunucular\u0131 tek bir &#8220;sanal&#8221; veritaban\u0131 adresine ba\u011flan\u0131r ve HAProxy arka planda bu ba\u011flant\u0131y\u0131 uygun veritaban\u0131 sunucusuna y\u00f6nlendirir. Bu mimari, uygulama katman\u0131n\u0131 veritaban\u0131 altyap\u0131s\u0131n\u0131n karma\u015f\u0131kl\u0131\u011f\u0131ndan soyutlayarak geli\u015ftirme ve bak\u0131m s\u00fcre\u00e7lerini de basitle\u015ftirir.<\/p>\n<h2>HAProxy ile Veritaban\u0131 Y\u00fck Dengelemenin Temel Prensipleri Nelerdir?<\/h2>\n<p>HAProxy&#8217;yi veritaban\u0131 y\u00fck dengeleme amac\u0131yla kullan\u0131rken, baz\u0131 temel prensipleri anlamak kritik \u00f6neme sahiptir. Veritaban\u0131 ba\u011flant\u0131lar\u0131 genellikle TCP (Transmission Control Protocol) katman\u0131nda ger\u00e7ekle\u015fir ve bu ba\u011flant\u0131lar durum bilgisi i\u00e7erir; yani, bir ba\u011flant\u0131 a\u00e7\u0131ld\u0131\u011f\u0131nda belirli bir oturum ve durum bilgisi sunucu taraf\u0131nda tutulur. Bu nedenle HAProxy, veritaban\u0131 y\u00fck dengelemesinde genellikle <code>mode tcp<\/code> ayar\u0131yla TCP katman\u0131nda \u00e7al\u0131\u015f\u0131r. Bu modda HAProxy, gelen TCP ba\u011flant\u0131lar\u0131n\u0131 sonland\u0131rmaz, sadece paketleri hedef sunucuya \u015feffaf bir \u015fekilde iletir. Bu, veritaban\u0131 sunucular\u0131n\u0131n istemcilerle do\u011frudan TCP el s\u0131k\u0131\u015fmas\u0131n\u0131 tamamlamas\u0131n\u0131 sa\u011flar ve veritaban\u0131 protokollerinin karma\u015f\u0131kl\u0131\u011f\u0131ndan HAProxy&#8217;yi soyutlar, b\u00f6ylece performans ve uyumluluk artar.<\/p>\n<p>Y\u00fck dengeleme algoritmalar\u0131, HAProxy&#8217;nin gelen ba\u011flant\u0131lar\u0131 birden fazla arka u\u00e7 sunucusu aras\u0131nda nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131 belirler. Veritaban\u0131 senaryolar\u0131nda en s\u0131k kullan\u0131lan algoritmalar \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Round-robin:<\/strong> Her yeni ba\u011flant\u0131y\u0131 s\u0131rayla bir sonraki sunucuya g\u00f6nderir. Basit ve e\u015fit y\u00fck da\u011f\u0131l\u0131m\u0131 sa\u011flar.<\/li>\n<li><strong>Least-conn (En Az Ba\u011flant\u0131):<\/strong> En az aktif ba\u011flant\u0131ya sahip sunucuya yeni ba\u011flant\u0131lar\u0131 y\u00f6nlendirir. Yo\u011funlu\u011fun de\u011fi\u015fken oldu\u011fu durumlarda daha iyi performans sunabilir.<\/li>\n<li><strong>Source (Kaynak):<\/strong> \u0130stemcinin IP adresine g\u00f6re ba\u011flant\u0131lar\u0131 y\u00f6nlendirir. Ayn\u0131 istemciden gelen t\u00fcm ba\u011flant\u0131lar\u0131n her zaman ayn\u0131 sunucuya gitmesini sa\u011flar. Bu, veritaban\u0131 oturum tutarl\u0131l\u0131\u011f\u0131 i\u00e7in \u00f6nemli olabilir, ancak y\u00fck dengesini olumsuz etkileyebilir.<\/li>\n<\/ul>\n<p>Veritaban\u0131 y\u00fck dengelemesinde en kritik unsurlardan biri ise sa\u011fl\u0131k kontrolleridir (Health Checks). HAProxy, yap\u0131land\u0131r\u0131lan aral\u0131klarla arka u\u00e7 veritaban\u0131 sunucular\u0131n\u0131n durumunu kontrol eder. E\u011fer bir sunucu sa\u011fl\u0131k kontrol\u00fcnden ge\u00e7emezse (\u00f6rne\u011fin, yan\u0131t vermezse veya belirli bir portu dinlemezse), HAProxy o sunucuyu havuzdan \u00e7\u0131kar\u0131r ve trafi\u011fi sadece sa\u011fl\u0131kl\u0131 sunuculara y\u00f6nlendirir. Bir sunucu tekrar sa\u011fl\u0131kl\u0131 hale geldi\u011finde ise otomatik olarak havuza geri eklenir. Sa\u011fl\u0131k kontrolleri i\u00e7in genellikle <code>option tcp-check<\/code> kullan\u0131l\u0131r ve <code>inter<\/code> (kontrol aral\u0131\u011f\u0131), <code>rise<\/code> (sa\u011fl\u0131kl\u0131 say\u0131lmas\u0131 i\u00e7in gerekli ba\u015far\u0131l\u0131 kontrol say\u0131s\u0131) ve <code>fall<\/code> (sa\u011fl\u0131ks\u0131z say\u0131lmas\u0131 i\u00e7in gerekli ba\u015far\u0131s\u0131z kontrol say\u0131s\u0131) gibi parametrelerle ince ayarlar yap\u0131l\u0131r.<\/p>\n<p>Veritaban\u0131 \u00f6l\u00e7eklenebilirli\u011fi i\u00e7in \u00f6nemli bir kavram olan Okuma\/Yazma Ay\u0131rma (Read\/Write Splitting), HAProxy ile dolayl\u0131 yoldan da olsa uygulanabilir. Genellikle veritaban\u0131 i\u015flemleri i\u00e7inde okuma i\u015flemleri (SELECT) yazma i\u015flemlerine (INSERT, UPDATE, DELETE) g\u00f6re \u00e7ok daha yo\u011fun olabilir. Bu durumda, ana (master) veritaban\u0131 yazma i\u015flemleri i\u00e7in kullan\u0131l\u0131rken, \u00e7o\u011faltma (replica\/slave) veritabanlar\u0131 okuma i\u015flemleri i\u00e7in kullan\u0131labilir. HAProxy&#8217;nin geli\u015fmi\u015f kurallar\u0131 (ACL&#8217;ler) ve <code>use_backend<\/code> direktifleri ile gelen sorgunun t\u00fcr\u00fcne g\u00f6re farkl\u0131 veritaban\u0131 sunucular\u0131na y\u00f6nlendirme yap\u0131labilir. Ancak bu, TCP seviyesinde olduk\u00e7a karma\u015f\u0131k bir yakla\u015f\u0131md\u0131r ve genellikle uygulama katman\u0131nda veya daha geli\u015fmi\u015f veritaban\u0131 proxy&#8217;leri ile daha etkili bir \u015fekilde ger\u00e7ekle\u015ftirilir. HAProxy&#8217;nin do\u011frudan bir SQL ayr\u0131\u015ft\u0131rma yetene\u011fi olmasa da, belirli portlar \u00fczerinden veya istemci IP&#8217;sine g\u00f6re okuma\/yazma havuzlar\u0131na y\u00f6nlendirme gibi stratejiler geli\u015ftirilebilir.<\/p>\n<div class=\"tip\">Uzman \u0130pucu: Veritaban\u0131 sunucular\u0131n\u0131z\u0131n durumunu sadece port kontrol\u00fc ile de\u011fil, ayn\u0131 zamanda belirli bir SQL sorgusunun ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol ederek daha sa\u011flam sa\u011fl\u0131k kontrolleri yapabilirsiniz. HAProxy&#8217;nin <code>option mysql-check<\/code> veya <code>option pgsql-check<\/code> gibi \u00f6zel veritaban\u0131 sa\u011fl\u0131k kontrol se\u00e7enekleri mevcuttur.<\/div>\n<h2>Ad\u0131m Ad\u0131m HAProxy Kurulumu ve Temel Veritaban\u0131 Y\u00f6nlendirme Yap\u0131land\u0131rmas\u0131 Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>HAProxy&#8217;yi veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 y\u00f6nlendirmek i\u00e7in kurmak ve yap\u0131land\u0131rmak olduk\u00e7a basittir. \u0130\u015fte ad\u0131m ad\u0131m bir rehber:<\/p>\n<h3>1. HAProxy Kurulumu<\/h3>\n<p>HAProxy&#8217;yi genellikle Linux tabanl\u0131 sunuculara kurar\u0131z. Ubuntu veya Debian tabanl\u0131 bir sistem i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code>\nsudo apt update\nsudo apt install haproxy -y\n<\/pre>\n<p><\/code><\/p>\n<p>Kurulum tamamland\u0131ktan sonra HAProxy servisini ba\u015flatabilir ve durumunu kontrol edebilirsiniz:<\/p>\n<pre><code>\nsudo systemctl start haproxy\nsudo systemctl enable haproxy\nsudo systemctl status haproxy\n<\/pre>\n<p><\/code><\/p>\n<h3>2. Temel HAProxy Yap\u0131land\u0131rmas\u0131 (<code>haproxy.cfg<\/code>)<\/h3>\n<p>HAProxy'nin ana yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/haproxy\/haproxy.cfg<\/code> konumunda bulunur. Bu dosyay\u0131 d\u00fczenleyerek veritaban\u0131 y\u00f6nlendirmesi i\u00e7in gerekli kurallar\u0131 ekleyece\u011fiz. Bir metin d\u00fczenleyici ile dosyay\u0131 a\u00e7\u0131n (\u00f6rne\u011fin, <code>sudo nano \/etc\/haproxy\/haproxy.cfg<\/code>).<\/p>\n<p>Tipik bir HAProxy yap\u0131land\u0131rma dosyas\u0131 \u015fu b\u00f6l\u00fcmlerden olu\u015fur:<\/p>\n<ul>\n<li><strong><code>global<\/code>:<\/strong> HAProxy s\u00fcreci i\u00e7in genel ayarlar (CPU \u00e7ekirde\u011fi kullan\u0131m\u0131, loglama, kullan\u0131c\u0131\/grup izinleri vb.).<\/li>\n<li><strong><code>defaults<\/code>:<\/strong> Frontend ve backend'ler i\u00e7in varsay\u0131lan ayarlar (mode, timeout de\u011ferleri vb.).<\/li>\n<li><strong><code>frontend<\/code>:<\/strong> HAProxy'nin dinleyece\u011fi IP adresi ve portu, gelen ba\u011flant\u0131lar\u0131 nas\u0131l i\u015fleyece\u011fini tan\u0131mlar.<\/li>\n<li><strong><code>backend<\/code>:<\/strong> Trafi\u011fin y\u00f6nlendirilece\u011fi ger\u00e7ek sunucular\u0131n listesini, y\u00fck dengeleme algoritmas\u0131n\u0131 ve sa\u011fl\u0131k kontrollerini tan\u0131mlar.<\/li>\n<\/ul>\n<p>A\u015fa\u011f\u0131da, MySQL veya PostgreSQL (varsay\u0131lan port 3306 veya 5432) i\u00e7in temel bir veritaban\u0131 y\u00f6nlendirme yap\u0131land\u0131rma \u00f6rne\u011fi bulunmaktad\u0131r. Bu \u00f6rnekte, HAProxy <code>3306<\/code> portunu dinleyecek ve gelen ba\u011flant\u0131lar\u0131 <code>db_servers<\/code> adl\u0131 backend grubundaki veritaban\u0131 sunucular\u0131na da\u011f\u0131tacakt\u0131r:<\/p>\n<pre><code>\nglobal\n    log \/dev\/log    local0\n    chroot \/var\/lib\/haproxy\n    stats socket \/run\/haproxy\/admin.sock mode 660 level admin expose-fd listeners\n    stats timeout 30s\n    user haproxy\n    group haproxy\n    daemon\n\ndefaults\n    log     global\n    mode    tcp\n    option  tcplog\n    timeout connect 10s\n    timeout client  1m\n    timeout server  1m\n\nfrontend db_cluster\n    # HAProxy'nin dinleyece\u011fi IP ve port.\n    # *:3306, t\u00fcm aray\u00fczlerde 3306 portunu dinle demektir.\n    bind *:3306\n    # Veritaban\u0131 ba\u011flant\u0131lar\u0131 TCP modunda \u00e7al\u0131\u015f\u0131r\n    mode tcp\n    # Gelen trafi\u011fi hangi backend grubuna y\u00f6nlendirece\u011fini belirtir\n    default_backend db_servers\n\nbackend db_servers\n    # Backend de TCP modunda \u00e7al\u0131\u015f\u0131r\n    mode tcp\n    # Y\u00fck dengeleme algoritmas\u0131: Round-robin (s\u0131rayla)\n    balance roundrobin\n    # TCP sa\u011fl\u0131k kontrol\u00fc se\u00e7ene\u011fini etkinle\u015ftirir\n    option tcp-check\n    # Veritaban\u0131 sunucular\u0131 ve portlar\u0131, sa\u011fl\u0131k kontrol ayarlar\u0131\n    # check: Sa\u011fl\u0131k kontrol\u00fcn\u00fc etkinle\u015ftirir\n    # port 3306: Sa\u011fl\u0131k kontrol\u00fcn\u00fc bu port \u00fczerinden yapar\n    # inter 10s: Her 10 saniyede bir kontrol et\n    # rise 2: 2 ba\u015far\u0131l\u0131 kontrolden sonra sunucuyu \"sa\u011fl\u0131kl\u0131\" kabul et\n    # fall 3: 3 ba\u015far\u0131s\u0131z kontrolden sonra sunucuyu \"sa\u011fl\u0131ks\u0131z\" kabul et\n    server db1 192.168.1.101:3306 check port 3306 inter 10s rise 2 fall 3\n    server db2 192.168.1.102:3306 check port 3306 inter 10s rise 2 fall 3\n    server db3 192.168.1.103:3306 check port 3306 inter 10s rise 2 fall 3\n\n# HAProxy y\u00f6netim aray\u00fcz\u00fc (iste\u011fe ba\u011fl\u0131)\nlisten stats\n    bind *:8080\n    mode http\n    stats enable\n    stats uri \/haproxy?stats\n    stats realm HAPProxy\\ Statistics\n    stats auth admin:password123\n<\/pre>\n<p><\/code><\/p>\n<h3>3. Yap\u0131land\u0131rmay\u0131 Test Etme ve Servisi Yeniden Ba\u015flatma<\/h3>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra, herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in HAProxy yap\u0131land\u0131rma kontrol komutunu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\nsudo haproxy -c -f \/etc\/haproxy\/haproxy.cfg\n<\/pre>\n<p><\/code><\/p>\n<p>E\u011fer \"Configuration file is valid\" mesaj\u0131n\u0131 g\u00f6r\u00fcrseniz, yap\u0131land\u0131rman\u0131z do\u011fru demektir. \u015eimdi HAProxy servisini yeniden ba\u015flatarak de\u011fi\u015fiklikleri uygulay\u0131n:<\/p>\n<pre><code>\nsudo systemctl restart haproxy\n<\/pre>\n<p><\/code><\/p>\n<p>Art\u0131k uygulaman\u0131z, do\u011frudan veritaban\u0131 sunucular\u0131na ba\u011flanmak yerine, HAProxy'nin dinledi\u011fi IP adresine (\u00f6rne\u011fin, HAProxy sunucusunun IP adresi) ve 3306 portuna ba\u011flanacakt\u0131r. HAProxy, bu ba\u011flant\u0131lar\u0131 arka u\u00e7taki \u00fc\u00e7 veritaban\u0131 sunucusundan birine y\u00f6nlendirecektir.<\/p>\n<div class=\"tip\">Uzman \u0130pucu: HAProxy'nin yap\u0131land\u0131rmas\u0131n\u0131 canl\u0131da kesinti olmadan g\u00fcncellemek i\u00e7in <code>sudo systemctl reload haproxy<\/code> komutunu kullanabilirsiniz. Bu, yeni bir HAProxy s\u00fcreci ba\u015flat\u0131r ve eski ba\u011flant\u0131lar\u0131 kademeli olarak yeni s\u00fcrece ta\u015f\u0131r.<\/div>\n<h2>Veritaban\u0131 Mimarilerinde HAProxy ile Y\u00fcksek Eri\u015filebilirlik ve Felaket Kurtarma Nas\u0131l Sa\u011flan\u0131r?<\/h2>\n<p>HAProxy, veritaban\u0131 katman\u0131nda y\u00fcksek eri\u015filebilirlik (High Availability) ve felaket kurtarma (Disaster Recovery) sa\u011flamak i\u00e7in temel bir bile\u015fen olarak i\u015flev g\u00f6r\u00fcr. Bu yetenekler, \u00f6zellikle aktif-pasif (active-passive) ve aktif-aktif (active-active) veritaban\u0131 mimarilerinde kritik rol oynar.<\/p>\n<p><strong>Aktif-Pasif Mimariler:<\/strong> Bu yap\u0131da, bir ana (master) veritaban\u0131 aktif olarak t\u00fcm yazma ve okuma i\u015flemlerini y\u00fcr\u00fct\u00fcrken, bir veya daha fazla \u00e7o\u011faltma (replica\/slave) veritaban\u0131 sadece beklemede (pasif) kal\u0131r. Birincil ana veritaban\u0131 ar\u0131zaland\u0131\u011f\u0131nda, \u00e7o\u011faltma veritabanlar\u0131ndan biri ana rol\u00fcn\u00fc \u00fcstlenir ve trafik yeni ana sunucuya y\u00f6nlendirilir. HAProxy, bu ge\u00e7i\u015fi otomatikle\u015ftirme s\u00fcrecinde \u00e7ok \u00f6nemlidir. Sa\u011fl\u0131k kontrolleri arac\u0131l\u0131\u011f\u0131yla ana sunucunun durumunu s\u00fcrekli izler. Ana sunucu ar\u0131zaland\u0131\u011f\u0131nda, HAProxy bunu tespit eder ve trafi\u011fi otomatik olarak pasif sunucuya (e\u011fer birincil rol\u00fc \u00fcstlenmi\u015fse) veya ba\u015fka bir aktif \u00e7o\u011faltmaya y\u00f6nlendirir. Yap\u0131land\u0131rmada <code>backup<\/code> anahtar kelimesi, bir sunucunun yaln\u0131zca di\u011fer t\u00fcm sunucular kullan\u0131lamaz oldu\u011funda kullan\u0131laca\u011f\u0131n\u0131 belirtmek i\u00e7in kullan\u0131labilir.<\/p>\n<pre><code>\nbackend db_servers\n    mode tcp\n    balance leastconn\n    option tcp-check\n    server master_db 192.168.1.101:3306 check port 3306 inter 5s fall 3\n    server slave_db1 192.168.1.102:3306 check port 3306 inter 5s fall 3 backup\n    server slave_db2 192.168.1.103:3306 check port 3306 inter 5s fall 3 backup\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>master_db<\/code> aktif olarak kullan\u0131l\u0131rken, <code>slave_db1<\/code> ve <code>slave_db2<\/code> sadece <code>master_db<\/code> d\u00fc\u015ferse devreye girer. Ancak, bu senaryoda veritaban\u0131n\u0131n kendisinin birincil\/\u00e7o\u011faltma rol ge\u00e7i\u015fini (failover) y\u00f6netmesi gerekti\u011fini unutmamak \u00f6nemlidir (\u00f6rne\u011fin, PostgreSQL'de Patroni, MySQL'de MHA gibi ara\u00e7larla).<\/p>\n<p><strong>Aktif-Aktif Mimariler:<\/strong> \u00c7oklu ana (multi-master) veya birden fazla okuma \u00e7o\u011faltmas\u0131 (read replicas) olan senaryolarda, t\u00fcm veritaban\u0131 sunucular\u0131 ayn\u0131 anda aktif olarak \u00e7al\u0131\u015f\u0131r. Bu durumda HAProxy, gelen ba\u011flant\u0131lar\u0131 aktif sunucular aras\u0131nda e\u015fit \u015fekilde da\u011f\u0131tarak performans\u0131 ve y\u00fck kapasitesini art\u0131r\u0131r. E\u011fer bir sunucu ar\u0131zalan\u0131rsa, HAProxy onu havuzdan \u00e7\u0131kar\u0131r ve kalan sa\u011fl\u0131kl\u0131 sunuculara y\u00f6nlendirmeye devam eder. Bu, kesintisiz bir hizmet sa\u011flar ve uygulaman\u0131n \u00f6l\u00e7eklenebilirli\u011fini art\u0131r\u0131r. \u00c7oklu ana veritaban\u0131 kurulumlar\u0131nda, t\u00fcm ana sunucular\u0131n e\u015f zamanl\u0131 olarak yazma ve okuma i\u015flemlerini destekledi\u011fi varsay\u0131l\u0131r. HAProxy, b\u00f6yle bir durumda <code>roundrobin<\/code> veya <code>leastconn<\/code> gibi algoritmalarla gelen trafi\u011fi t\u00fcm ana sunuculara da\u011f\u0131tabilir.<\/p>\n<p>HAProxy'nin sa\u011fl\u0131k kontrolleri, bu y\u00fcksek eri\u015filebilirlik mekanizmalar\u0131n\u0131n temelidir. HAProxy, veritaban\u0131 sunucular\u0131n\u0131 yaln\u0131zca \"up\" veya \"down\" olarak i\u015faretlemekle kalmaz, ayn\u0131 zamanda belirli e\u015fiklere g\u00f6re (<code>rise<\/code> ve <code>fall<\/code> parametreleri) daha ak\u0131ll\u0131ca karar verir. \u00d6rne\u011fin, k\u0131sa s\u00fcreli a\u011f sorunlar\u0131 nedeniyle bir anl\u0131k kesinti ya\u015fayan bir sunucuyu hemen devre d\u0131\u015f\u0131 b\u0131rakmak yerine, birka\u00e7 ba\u015far\u0131s\u0131z kontrol sonras\u0131nda i\u015flem yapabilir. Bu, yanl\u0131\u015f pozitifleri (false positives) azaltmaya yard\u0131mc\u0131 olur.<\/p>\n<p>Felaket kurtarma durumlar\u0131nda, HAProxy'nin rol\u00fc, co\u011frafi olarak farkl\u0131 b\u00f6lgelerde konu\u015fland\u0131r\u0131lm\u0131\u015f veritaban\u0131 k\u00fcmeleri aras\u0131nda trafik y\u00f6nlendirmesini kolayla\u015ft\u0131rmakt\u0131r. Bir b\u00f6lgedeki t\u00fcm veritaban\u0131 sunucular\u0131 eri\u015filemez hale geldi\u011finde, HAProxy yap\u0131land\u0131rmas\u0131, trafik ak\u0131\u015f\u0131n\u0131 ba\u015fka bir b\u00f6lgedeki yedek veritaban\u0131 k\u00fcmesine y\u00f6nlendirebilir. Bu senaryo, genellikle DNS tabanl\u0131 y\u00f6nlendirme veya Keepalived gibi ek ara\u00e7larla HAProxy'nin kendisinin y\u00fcksek eri\u015filebilirli\u011fini sa\u011flayarak birle\u015ftirilir. Keepalived, birden fazla HAProxy sunucusu aras\u0131nda sanal bir IP adresi (VIP) payla\u015f\u0131m\u0131n\u0131 y\u00f6netir. E\u011fer ana HAProxy sunucusu d\u00fc\u015ferse, Keepalived VIP'yi yedek HAProxy sunucusuna ta\u015f\u0131r, b\u00f6ylece tek bir HAProxy noktas\u0131 bile bir ar\u0131za noktas\u0131 (single point of failure) olmaktan \u00e7\u0131kar.<\/p>\n<div class=\"tip\">Uzman \u0130pucu: Keepalived ile HAProxy'nin kendi y\u00fcksek eri\u015filebilirli\u011fini sa\u011flamak, veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131z i\u00e7in u\u00e7tan uca kesintisiz bir hizmet sunman\u0131n anahtar\u0131d\u0131r. B\u00f6ylece HAProxy sunucusunun kendisi de bir ar\u0131za noktas\u0131 olmaktan \u00e7\u0131kar.<\/div>\n<h3>HAProxy ile Okuma\/Yazma (Read\/Write) Ay\u0131rma Stratejileri<\/h3>\n<p>Veritaban\u0131 uygulamalar\u0131nda okuma (SELECT) i\u015flemleri, yazma (INSERT, UPDATE, DELETE) i\u015flemlerine g\u00f6re genellikle \u00e7ok daha fazlad\u0131r. Bu asimetrik y\u00fck da\u011f\u0131l\u0131m\u0131, performans darbo\u011fazlar\u0131na yol a\u00e7abilir. Okuma\/yazma ay\u0131rma stratejisi, okuma i\u015flemlerini \u00e7o\u011faltma (replica\/slave) sunucular\u0131na, yazma i\u015flemlerini ise ana (master) sunucuya y\u00f6nlendirerek bu sorunu \u00e7\u00f6zer ve veritaban\u0131 sisteminin genel \u00f6l\u00e7eklenebilirli\u011fini art\u0131r\u0131r.<\/p>\n<p>HAProxy, bir TCP proxy'si olarak SQL sorgular\u0131n\u0131n i\u00e7eri\u011fini do\u011frudan anlamaz veya ayr\u0131\u015ft\u0131rmaz. Dolay\u0131s\u0131yla, uygulama katman\u0131nda yap\u0131lan okuma\/yazma ay\u0131rma kadar esnek olmasa da, belirli senaryolarda dolayl\u0131 yoldan okuma\/yazma ay\u0131rma stratejilerine yard\u0131mc\u0131 olabilir. Bu genellikle iki ana yakla\u015f\u0131mla yap\u0131l\u0131r:<\/p>\n<ol>\n<li><strong>Farkl\u0131 Portlar Kullanarak Ay\u0131rma:<\/strong> Uygulama, yazma i\u015flemleri i\u00e7in belirli bir HAProxy portuna (\u00f6rne\u011fin 3306), okuma i\u015flemleri i\u00e7in ise farkl\u0131 bir HAProxy portuna (\u00f6rne\u011fin 3307) ba\u011flan\u0131r. HAProxy, bu portlar\u0131 farkl\u0131 backend sunucu havuzlar\u0131na y\u00f6nlendirir.<\/li>\n<li><strong>Geli\u015fmi\u015f ACL Kurallar\u0131 ile Ay\u0131rma (S\u0131n\u0131rl\u0131):<\/strong> Daha karma\u015f\u0131k senaryolarda, HAProxy'nin <code>req.payload<\/code> veya <code>req.ssl_sni<\/code> gibi \u00f6zellikleri kullan\u0131larak istemci taraf\u0131ndan g\u00f6nderilen ilk veri paketinin belirli desenleri veya SSL SNI (Server Name Indication) bilgisi incelenerek y\u00f6nlendirme yap\u0131lmaya \u00e7al\u0131\u015f\u0131labilir. Ancak bu, SQL protokollerinin karma\u015f\u0131kl\u0131\u011f\u0131 nedeniyle genellikle g\u00fcvenilir veya kapsaml\u0131 bir y\u00f6ntem de\u011fildir.<\/li>\n<\/ol>\n<p>\u0130\u015fte farkl\u0131 portlar kullanarak okuma\/yazma ay\u0131rman\u0131n temel bir HAProxy yap\u0131land\u0131rma \u00f6rne\u011fi:<\/p>\n<pre><code>\nfrontend db_write_entrypoint\n    bind *:3306\n    mode tcp\n    default_backend write_servers\n\nfrontend db_read_entrypoint\n    bind *:3307\n    mode tcp\n    default_backend read_servers\n\nbackend write_servers\n    mode tcp\n    balance leastconn\n    option tcp-check\n    server master_db 192.168.1.101:3306 check port 3306 inter 5s fall 3\n\nbackend read_servers\n    mode tcp\n    balance roundrobin\n    option tcp-check\n    server slave_db1 192.168.1.102:3306 check port 3306 inter 5s fall 3\n    server slave_db2 192.168.1.103:3306 check port 3306 inter 5s fall 3\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131land\u0131rmada:<\/p>\n<ul>\n<li>Uygulama, yazma i\u015flemleri i\u00e7in HAProxy'nin 3306 portuna ba\u011flan\u0131r ve trafik <code>master_db<\/code> sunucusuna y\u00f6nlendirilir.<\/li>\n<li>Uygulama, okuma i\u015flemleri i\u00e7in HAProxy'nin 3307 portuna ba\u011flan\u0131r ve trafik <code>slave_db1<\/code> ile <code>slave_db2<\/code> sunucular\u0131 aras\u0131nda y\u00fck dengeli bir \u015fekilde da\u011f\u0131t\u0131l\u0131r.<\/li>\n<\/ul>\n<p>Bu yakla\u015f\u0131m\u0131n avantaj\u0131, uygulama katman\u0131nda basit\u00e7e farkl\u0131 portlara ba\u011flanarak okuma\/yazma ay\u0131rman\u0131n ger\u00e7ekle\u015ftirilebilmesidir. S\u0131n\u0131rlamas\u0131 ise, uygulaman\u0131n bu ayr\u0131m\u0131 bilmesi ve ba\u011flant\u0131lar\u0131n\u0131 buna g\u00f6re yapmas\u0131 gerekti\u011fidir. Daha geli\u015fmi\u015f veritaban\u0131 proxy'leri (\u00f6rne\u011fin, ProxySQL for MySQL veya PgBouncer for PostgreSQL ile birlikte kullan\u0131lan ProxySQL gibi) SQL sorgular\u0131n\u0131 analiz ederek okuma\/yazma ay\u0131rmay\u0131 proxy seviyesinde \u00e7ok daha sofistike bir \u015fekilde yapabilirler. HAProxy, bu t\u00fcr senaryolarda genellikle birincil y\u00fck dengeleyici olarak konumland\u0131r\u0131l\u0131r ve bu \u00f6zel veritaban\u0131 proxy'lerinin \u00f6n\u00fcnde durarak onlar\u0131n y\u00fcksek eri\u015filebilirli\u011fini sa\u011flar.<\/p>\n<h2>G\u00fcvenlik ve \u0130zleme: HAProxy \u00dczerinden Veritaban\u0131 Ba\u011flant\u0131lar\u0131n\u0131 Nas\u0131l Koruruz?<\/h2>\n<p>Veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131n g\u00fcvenli\u011fi ve sistemin izlenmesi, herhangi bir \u00fcretim ortam\u0131nda vazge\u00e7ilmezdir. HAProxy, bu alanlarda da \u00f6nemli yetenekler sunarak veritaban\u0131 altyap\u0131n\u0131z\u0131n sa\u011flaml\u0131\u011f\u0131n\u0131 art\u0131rman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<h3>SSL\/TLS \u015eifrelemesi<\/h3>\n<p>Veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131n g\u00fcvenli\u011fini sa\u011flaman\u0131n en \u00f6nemli yollar\u0131ndan biri, ta\u015f\u0131ma katman\u0131 \u015fifrelemesi olan SSL\/TLS kullanmakt\u0131r. HAProxy, gelen istemci ba\u011flant\u0131lar\u0131n\u0131 TLS ile sonland\u0131rma (SSL\/TLS Termination) yetene\u011fine sahiptir. Bu, istemcilerle HAProxy aras\u0131ndaki ba\u011flant\u0131n\u0131n \u015fifreli olmas\u0131n\u0131 sa\u011flar. HAProxy, gelen \u015fifreli trafi\u011fi \u015fifresini \u00e7\u00f6zerek arka u\u00e7 veritaban\u0131 sunucular\u0131na \u015fifresiz veya iste\u011fe ba\u011fl\u0131 olarak tekrar \u015fifrelenmi\u015f olarak iletebilir. Bu, veritaban\u0131 sunucular\u0131n\u0131n \u00fczerindeki \u015fifreleme y\u00fck\u00fcn\u00fc hafifletir ve performanslar\u0131n\u0131 art\u0131rabilir. Yap\u0131land\u0131rma \u00f6rne\u011fi:<\/p>\n<pre><code>\nfrontend db_cluster_secure\n    # 3306 portunda SSL\/TLS ile dinle\n    bind *:3306 ssl crt \/etc\/haproxy\/certs\/db-cert.pem\n    mode tcp\n    default_backend db_servers_secure\n\nbackend db_servers_secure\n    mode tcp\n    balance leastconn\n    # Arka u\u00e7 sunucular\u0131na da SSL\/TLS ile ba\u011flan (iste\u011fe ba\u011fl\u0131)\n    # ssl verify required: Sunucu sertifikas\u0131n\u0131 do\u011frulamas\u0131n\u0131 sa\u011flar\n    # ca-file: G\u00fcvenilen CA sertifikalar\u0131n\u0131n yolu\n    server db1 192.168.1.101:3306 ssl verify required ca-file \/etc\/haproxy\/certs\/ca.pem\n    server db2 192.168.1.102:3306 ssl verify required ca-file \/etc\/haproxy\/certs\/ca.pem\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131land\u0131rmada, istemci 3306 portundan HAProxy'ye TLS ile ba\u011flan\u0131r. HAProxy, <code>\/etc\/haproxy\/certs\/db-cert.pem<\/code> dosyas\u0131ndaki sertifikay\u0131 kullanarak ba\u011flant\u0131y\u0131 \u015fifresini \u00e7\u00f6zer ve iste\u011fe ba\u011fl\u0131 olarak arka u\u00e7 veritaban\u0131 sunucular\u0131na da TLS \u00fczerinden ba\u011flan\u0131r. Bu, u\u00e7tan uca g\u00fcvenli\u011fi sa\u011flar.<\/p>\n<h3>Eri\u015fim Kontrol Listeleri (ACLs)<\/h3>\n<p>HAProxy, g\u00fc\u00e7l\u00fc eri\u015fim kontrol listeleri (ACL) sayesinde hangi istemcilerin veritaban\u0131na eri\u015febilece\u011fini belirlemenize olanak tan\u0131r. Bu, sadece g\u00fcvenilir IP adreslerinden veya a\u011flardan gelen ba\u011flant\u0131lara izin vererek g\u00fcvenlik duvar\u0131 g\u00f6revi g\u00f6rmesini sa\u011flar. \u00d6rne\u011fin, sadece uygulama sunucular\u0131n\u0131z\u0131n IP adreslerinden gelen ba\u011flant\u0131lara izin verebilirsiniz:<\/p>\n<pre><code>\nfrontend db_cluster\n    bind *:3306\n    mode tcp\n    # Belirli bir IP adresinden gelen ba\u011flant\u0131lara izin ver\n    acl trusted_app_server src 192.168.10.10\n    # Belirli bir a\u011fdan gelen ba\u011flant\u0131lara izin ver\n    acl trusted_app_network src 192.168.10.0\/24\n\n    tcp-request inspect-delay 5s\n    tcp-request content accept if trusted_app_server or trusted_app_network\n    tcp-request content reject\n\n    default_backend db_servers\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, sadece <code>192.168.10.10<\/code> IP adresinden veya <code>192.168.10.0\/24<\/code> a\u011f\u0131ndan gelen ba\u011flant\u0131lara izin verilir, di\u011fer t\u00fcm ba\u011flant\u0131lar reddedilir. <code>tcp-request inspect-delay<\/code> ile HAProxy'nin istemci veri g\u00f6ndermesini beklemesi sa\u011flan\u0131r, bu sayede ACL'ler daha etkin \u00e7al\u0131\u015f\u0131r.<\/p>\n<h3>HAProxy \u0130statistikleri (Stats Page)<\/h3>\n<p>HAProxy, dahili bir istatistik sayfas\u0131 sunarak y\u00fck dengeleyicinin ve arka u\u00e7 sunucular\u0131n\u0131n performans\u0131n\u0131 ve durumunu izlemenizi sa\u011flar. Bu sayfa, aktif ba\u011flant\u0131 say\u0131s\u0131, trafik hacmi, sunucu durumu, hata oranlar\u0131 gibi de\u011ferli metrikleri g\u00f6rselle\u015ftirir. Yap\u0131land\u0131rman\u0131za a\u015fa\u011f\u0131daki blo\u011fu ekleyerek bu sayfay\u0131 etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code>\nlisten stats\n    bind *:8080 # \u0130statistik sayfas\u0131n\u0131n dinleyece\u011fi port\n    mode http\n    stats enable\n    stats uri \/haproxy?stats # \u0130statistik sayfas\u0131na eri\u015fim URL'si\n    stats realm HAProxy\\ Statistics\n    stats auth admin:password123 # Kullan\u0131c\u0131 ad\u0131 ve parola ile eri\u015fim korumas\u0131\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131land\u0131rma ile taray\u0131c\u0131n\u0131zdan <code>http:\/\/HAProxy_IP:8080\/haproxy?stats<\/code> adresine giderek HAProxy'nin istatistiklerini g\u00f6rebilirsiniz. Kullan\u0131c\u0131 ad\u0131 <code>admin<\/code> ve parola <code>password123<\/code> olacakt\u0131r.<\/p>\n<h3>Loglama<\/h3>\n<p>HAProxy'nin loglama yetenekleri, sorun giderme ve g\u00fcvenlik denetimi i\u00e7in hayati \u00f6neme sahiptir. Ba\u011flant\u0131 olaylar\u0131n\u0131, hata mesajlar\u0131n\u0131 ve di\u011fer \u00f6nemli bilgileri log dosyalar\u0131na kaydeder. Global b\u00f6l\u00fcmdeki <code>log \/dev\/log local0<\/code> ayar\u0131 ile sistem loguna (syslog) log g\u00f6ndermesini sa\u011flars\u0131n\u0131z. Daha detayl\u0131 loglama i\u00e7in, <code>log<\/code> direktifini <code>frontend<\/code> ve <code>backend<\/code> b\u00f6l\u00fcmlerinde de kullanabilirsiniz.<\/p>\n<pre><code>\nglobal\n    log \/dev\/log    local0 debug # Debug seviyesinde loglama\n    # ...\n\ndefaults\n    log     global\n    option  tcplog # TCP ba\u011flant\u0131lar\u0131n\u0131 logla\n    # ...\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ayarlar, HAProxy'nin ba\u011flant\u0131 ak\u0131\u015f\u0131n\u0131, ba\u011flant\u0131 s\u00fcrelerini ve ba\u011flant\u0131lar\u0131n hangi sunuculara y\u00f6nlendirildi\u011fini detayl\u0131 bir \u015fekilde kaydetmesini sa\u011flar. Bu loglar\u0131 merkezi bir loglama sistemine (ELK Stack, Grafana Loki vb.) g\u00f6ndererek daha etkin izleme ve analiz yapabilirsiniz.<\/p>\n<p>HAProxy, bu g\u00fcvenlik ve izleme \u00f6zellikleriyle veritaban\u0131 altyap\u0131n\u0131z\u0131n sadece performansl\u0131 de\u011fil, ayn\u0131 zamanda g\u00fcvenli ve y\u00f6netilebilir olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Y\u00fcksek Trafikli Bir E-ticaret Uygulamas\u0131 \u0130\u00e7in HAProxy \u00c7\u00f6z\u00fcm\u00fc<\/h2>\n<p>Hayal edelim ki, pop\u00fcler bir e-ticaret platformu olan \"TrendyMa\u011faza\", Black Friday gibi yo\u011fun al\u0131\u015fveri\u015f d\u00f6nemlerinde ciddi performans sorunlar\u0131 ya\u015famaya ba\u015flad\u0131. Mevcut mimaride, t\u00fcm uygulama sunucular\u0131 tek bir ana (master) PostgreSQL veritaban\u0131 sunucusuna ba\u011flan\u0131yordu. Gelen yo\u011fun trafik, \u00f6zellikle \u00fcr\u00fcn listeleme ve arama gibi okuma a\u011f\u0131rl\u0131kl\u0131 i\u015flemlerde, veritaban\u0131n\u0131 a\u015f\u0131r\u0131 y\u00fckl\u00fcyor ve site yan\u0131t s\u00fcreleri kabul edilemez seviyelere d\u00fc\u015f\u00fcyordu. Baz\u0131 durumlarda ise veritaban\u0131 tamamen kilitleniyor ve site eri\u015filemez hale geliyordu.<\/p>\n<p>TrendyMa\u011faza'n\u0131n m\u00fchendislik ekibi, bu sorunu \u00e7\u00f6zmek ve sistemin \u00f6l\u00e7eklenebilirli\u011fini art\u0131rmak i\u00e7in bir strateji geli\u015ftirdi: Master-Replica (Ana-\u00c7o\u011faltma) veritaban\u0131 mimarisine ge\u00e7i\u015f ve HAProxy kullanarak ba\u011flant\u0131lar\u0131n y\u00fck dengelemesi.<\/p>\n<h3>Uygulanan \u00c7\u00f6z\u00fcm Ad\u0131mlar\u0131:<\/h3>\n<ol>\n<li><strong>Veritaban\u0131 \u00c7o\u011faltmalar\u0131 Kurulumu:<\/strong> Mevcut ana PostgreSQL sunucusunun iki adet \u00e7o\u011faltmas\u0131 (replica) olu\u015fturuldu. Bu \u00e7o\u011faltmalar, ana sunucudaki veriyi pasif olarak kopyalayacak \u015fekilde yap\u0131land\u0131r\u0131ld\u0131.<\/li>\n<li><strong>HAProxy Konumland\u0131rmas\u0131:<\/strong> HAProxy, uygulama sunucular\u0131 ile veritaban\u0131 sunucular\u0131 aras\u0131na bir proxy katman\u0131 olarak yerle\u015ftirildi. \u0130ki adet HAProxy sunucusu, Keepalived ile aktif-pasif modda y\u00fcksek eri\u015filebilirlik sa\u011flayacak \u015fekilde kuruldu.<\/li>\n<li><strong>Okuma\/Yazma Ay\u0131rma ile HAProxy Yap\u0131land\u0131rmas\u0131:<\/strong> HAProxy, uygulaman\u0131n farkl\u0131 portlara yapt\u0131\u011f\u0131 ba\u011flant\u0131lara g\u00f6re okuma ve yazma i\u015flemlerini ay\u0131rmak \u00fczere yap\u0131land\u0131r\u0131ld\u0131.\n<ul>\n<li><strong>Yazma \u0130\u015flemleri (Port 5432):<\/strong> Uygulama, sipari\u015f olu\u015fturma, envanter g\u00fcncelleme gibi yazma i\u015flemleri i\u00e7in HAProxy'nin 5432 portuna ba\u011flanacak ve bu ba\u011flant\u0131lar do\u011frudan tek bir ana (master) veritaban\u0131 sunucusuna y\u00f6nlendirilecekti.<\/li>\n<li><strong>Okuma \u0130\u015flemleri (Port 5433):<\/strong> \u00dcr\u00fcn listeleme, stok kontrol\u00fc, yorumlar\u0131 okuma gibi okuma i\u015flemleri i\u00e7in uygulama HAProxy'nin 5433 portuna ba\u011flanacak ve bu ba\u011flant\u0131lar iki \u00e7o\u011faltma (replica) sunucusu aras\u0131nda <code>least-conn<\/code> (en az ba\u011flant\u0131) algoritmas\u0131yla y\u00fck dengeleyerek da\u011f\u0131t\u0131lacakt\u0131.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Sa\u011fl\u0131k Kontrolleri:<\/strong> Her bir veritaban\u0131 sunucusu i\u00e7in detayl\u0131 TCP ve PostgreSQL \u00f6zel sa\u011fl\u0131k kontrolleri yap\u0131land\u0131r\u0131ld\u0131. Bir sunucunun yan\u0131t vermemesi veya PostgreSQL servisinde sorun olmas\u0131 durumunda, HAProxy otomatik olarak bu sunucuyu havuzdan \u00e7\u0131karacak ve trafik ak\u0131\u015f\u0131n\u0131 kesintisiz bir \u015fekilde devam ettirecekti.<\/li>\n<\/ol>\n<h3>Sonu\u00e7lar ve Faydalar\u0131:<\/h3>\n<ul>\n<li><strong>Performans Art\u0131\u015f\u0131:<\/strong> Okuma trafi\u011finin \u00e7o\u011faltmalara y\u00f6nlendirilmesiyle ana veritaban\u0131 sunucusunun \u00fczerindeki y\u00fck dramatik bir \u015fekilde azald\u0131. \u00dcr\u00fcn listeleme ve arama sayfalar\u0131 \u00e7ok daha h\u0131zl\u0131 yan\u0131t vermeye ba\u015flad\u0131, bu da kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirdi.<\/li>\n<li><strong>Y\u00fcksek Eri\u015filebilirlik:<\/strong> Birincil ana veritaban\u0131 veya bir \u00e7o\u011faltma sunucusu ar\u0131zaland\u0131\u011f\u0131nda, HAProxy'nin otomatik failover (devir teslim) yetenekleri sayesinde hizmet kesintileri \u00f6nlendi. Keepalived ile HAProxy'nin kendisi de y\u00fcksek eri\u015filebilir k\u0131l\u0131nd\u0131\u011f\u0131ndan, tek bir hata noktas\u0131 ortadan kald\u0131r\u0131lm\u0131\u015f oldu.<\/li>\n<li><strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Gelecekte trafik daha da artt\u0131\u011f\u0131nda, TrendyMa\u011faza kolayca yeni okuma \u00e7o\u011faltmalar\u0131 ekleyerek sistemi daha da \u00f6l\u00e7eklendirebilecekti.<\/li>\n<li><strong>Kaynak Verimlili\u011fi:<\/strong> Veritaban\u0131 sunucular\u0131n\u0131n kaynaklar\u0131 daha verimli kullan\u0131ld\u0131. Ana sunucu sadece yazma i\u015flemlerine odaklan\u0131rken, \u00e7o\u011faltmalar okuma i\u015flemlerine ayr\u0131ld\u0131.<\/li>\n<\/ul>\n<p>Bu senaryo, HAProxy'nin sadece bir y\u00fck dengeleyici olman\u0131n \u00f6tesinde, kritik i\u015f uygulamalar\u0131 i\u00e7in nas\u0131l bir y\u00fcksek eri\u015filebilirlik ve performans \u00e7\u00f6z\u00fcm\u00fcne d\u00f6n\u00fc\u015ft\u00fc\u011f\u00fcn\u00fc a\u00e7\u0131k\u00e7a g\u00f6stermektedir. TrendyMa\u011faza, HAProxy sayesinde yo\u011fun al\u0131\u015fveri\u015f d\u00f6nemlerinde bile m\u00fc\u015fterilerine kesintisiz ve h\u0131zl\u0131 bir hizmet sunmay\u0131 ba\u015fard\u0131.<\/p>\n<div class=\"tip\">Uzman \u0130pucu: HAProxy'nin connection pooling \u00f6zelli\u011fi, veritaban\u0131 \u00fczerindeki ba\u011flant\u0131 kurma\/kapatma y\u00fck\u00fcn\u00fc azaltabilir. Bu, \u00f6zellikle \u00e7ok say\u0131da k\u0131sa \u00f6m\u00fcrl\u00fc ba\u011flant\u0131 a\u00e7\u0131p kapatan uygulamalar i\u00e7in performans\u0131 art\u0131rabilir. <code>option http-server-close<\/code> veya <code>option http-keep-alive<\/code> gibi ayarlar HTTP modunda kullan\u0131lsa da, TCP modunda <code>timeout client<\/code>, <code>timeout server<\/code> ve <code>timeout connect<\/code> ayarlar\u0131 ba\u011flant\u0131 y\u00f6netimi i\u00e7in \u00f6nemlidir.<\/div>\n<h2>Sonu\u00e7: HAProxy ile Veritaban\u0131 Y\u00f6nlendirmede Neler Ba\u015fard\u0131k?<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, HAProxy'nin veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla sunucuya y\u00f6nlendirme konusundaki kritik rol\u00fcn\u00fc ve nas\u0131l bir oyun de\u011fi\u015ftirici olabilece\u011fini derinlemesine inceledik. Modern uygulama geli\u015ftirme ve altyap\u0131 y\u00f6netiminde kar\u015f\u0131la\u015f\u0131lan \u00f6l\u00e7eklenebilirlik, y\u00fcksek eri\u015filebilirlik ve performans gibi temel zorluklara HAProxy'nin g\u00fc\u00e7l\u00fc ve esnek bir \u00e7\u00f6z\u00fcm sundu\u011funu g\u00f6rd\u00fck.<\/p>\n<p>Ba\u015flang\u0131\u00e7ta kar\u015f\u0131la\u015f\u0131lan tek veritaban\u0131 sunucusunun getirdi\u011fi k\u0131s\u0131tlamalardan, HAProxy'nin TCP modunda ak\u0131ll\u0131 y\u00fck dengeleme yetenekleriyle nas\u0131l kurtulabilece\u011fimizi \u00f6\u011frendik. Y\u00fck dengeleme algoritmalar\u0131, sa\u011fl\u0131k kontrolleri ve ad\u0131m ad\u0131m yap\u0131land\u0131rma \u00f6rnekleriyle HAProxy'yi veritaban\u0131 altyap\u0131m\u0131za nas\u0131l entegre edece\u011fimiz konusunda pratik bilgiler edindik. \u00d6zellikle aktif-pasif ve aktif-aktif veritaban\u0131 mimarilerinde HAProxy'nin y\u00fcksek eri\u015filebilirlik ve felaket kurtarma senaryolar\u0131ndaki vazge\u00e7ilmez rol\u00fcn\u00fc, ayr\u0131ca s\u0131n\u0131rl\u0131 da olsa okuma\/yazma ay\u0131rma stratejilerinde nas\u0131l kullan\u0131labilece\u011fini ke\u015ffettik.<\/p>\n<p>G\u00fcvenlik ve izleme mekanizmalar\u0131 sayesinde, veritaban\u0131 ba\u011flant\u0131lar\u0131m\u0131z\u0131 SSL\/TLS ile \u015fifrelemenin, ACL'lerle eri\u015fimi k\u0131s\u0131tlaman\u0131n ve istatistik sayfas\u0131 ile sistem durumunu s\u00fcrekli izlemenin \u00f6nemini vurgulad\u0131k. Ger\u00e7ek d\u00fcnya e-ticaret senaryosu, HAProxy'nin teorik yeteneklerinin pratikte nas\u0131l b\u00fcy\u00fck bir de\u011fer yaratabildi\u011fini somut bir \u015fekilde g\u00f6zler \u00f6n\u00fcne serdi.<\/p>\n<p>\u00d6zetle, HAProxy ile veritaban\u0131 y\u00f6nlendirme, sistemlerimizin:<\/p>\n<ul>\n<li><strong>\u00d6l\u00e7eklenebilirli\u011fini<\/strong> art\u0131rarak daha fazla kullan\u0131c\u0131ya hizmet vermesini sa\u011flar.<\/li>\n<li><strong>Y\u00fcksek Eri\u015filebilirli\u011fini<\/strong> garanti ederek kesintisiz hizmet sunar.<\/li>\n<li><strong>Performans\u0131n\u0131<\/strong> optimize ederek yan\u0131t s\u00fcrelerini k\u0131salt\u0131r.<\/li>\n<li><strong>G\u00fcvenli\u011fini<\/strong> g\u00fc\u00e7lendirerek hassas veri ak\u0131\u015f\u0131n\u0131 korur.<\/li>\n<li><strong>Y\u00f6netilebilirli\u011fini<\/strong> kolayla\u015ft\u0131rarak operasyonel y\u00fck\u00fc azalt\u0131r.<\/li>\n<\/ul>\n<p>HAProxy, karma\u015f\u0131k veritaban\u0131 altyap\u0131lar\u0131n\u0131 y\u00f6netmek i\u00e7in esnek, g\u00fc\u00e7l\u00fc ve maliyet etkin bir \u00e7\u00f6z\u00fcmd\u00fcr. Do\u011fru yap\u0131land\u0131rma ve stratejik yakla\u015f\u0131mla, uygulamalar\u0131n\u0131z\u0131n veritaban\u0131 katman\u0131n\u0131 gelece\u011fe haz\u0131r hale getirebilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>HAProxy sadece TCP modunda m\u0131 \u00e7al\u0131\u015f\u0131r?<\/h4>\n<p>Hay\u0131r, HAProxy hem TCP (katman 4) hem de HTTP (katman 7) modlar\u0131nda \u00e7al\u0131\u015fabilir. Veritaban\u0131 ba\u011flant\u0131lar\u0131 gibi durum bilgisi olan (stateful) protokoller i\u00e7in genellikle TCP modunda kullan\u0131l\u0131rken, web sunucular\u0131 ve API'ler gibi HTTP tabanl\u0131 uygulamalar i\u00e7in HTTP modunda tercih edilir. Bu makalede veritaban\u0131 y\u00f6nlendirmesi i\u00e7in TCP modu \u00fczerine odakland\u0131k.<\/p>\n<h4>HAProxy ile PostgreSQL, MSSQL gibi farkl\u0131 veritabanlar\u0131n\u0131 y\u00f6nlendirebilir miyim?<\/h4>\n<p>Evet, HAProxy veritaban\u0131 protokol\u00fcnden ba\u011f\u0131ms\u0131z olarak TCP ba\u011flant\u0131lar\u0131n\u0131 y\u00fck dengeleyebilir. MySQL (3306), PostgreSQL (5432), MSSQL (1433) veya ba\u015fka herhangi bir veritaban\u0131 i\u00e7in ayn\u0131 TCP modunda yap\u0131land\u0131rmay\u0131 kullanarak port y\u00f6nlendirmesi yapabilirsiniz. \u00d6nemli olan, HAProxy'nin ilgili portu dinlemesi ve arka u\u00e7 sunucular\u0131n\u0131n bu portta hizmet vermesidir.<\/p>\n<h4>HAProxy'nin performans \u00fczerindeki etkisi nedir?<\/h4>\n<p>HAProxy, C diliyle yaz\u0131lm\u0131\u015f olduk\u00e7a optimize edilmi\u015f ve h\u0131zl\u0131 bir yaz\u0131l\u0131md\u0131r. Genellikle \u00e7ok d\u00fc\u015f\u00fck gecikme s\u00fcresi (latency) ekler ve y\u00fcksek ba\u011flant\u0131 ve trafik hacimlerini kolayca y\u00f6netebilir. Do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda, performansa olumsuz etkisi minimum d\u00fczeydedir, hatta veritaban\u0131 sunucular\u0131n\u0131n \u00fczerindeki y\u00fck\u00fc azaltarak genel sistem performans\u0131n\u0131 art\u0131rabilir.<\/p>\n<h4>Veritaban\u0131 k\u00fcmelerinde HAProxy yerine ba\u015fka neler kullanabilirim?<\/h4>\n<p>HAProxy'ye alternatif olarak, donan\u0131m tabanl\u0131 y\u00fck dengeleyiciler (F5 Big-IP, Citrix ADC), di\u011fer yaz\u0131l\u0131m tabanl\u0131 y\u00fck dengeleyiciler (NGINX Plus, Envoy), veya veritaban\u0131na \u00f6zel proxy'ler (ProxySQL for MySQL, PgBouncer for PostgreSQL) kullan\u0131labilir. Se\u00e7im, projenin ihtiya\u00e7lar\u0131na, b\u00fct\u00e7esine ve istenen \u00f6zellik setine ba\u011fl\u0131d\u0131r.<\/p>\n<h4>HAProxy yap\u0131land\u0131rmas\u0131n\u0131 canl\u0131da nas\u0131l g\u00fcncellerim?<\/h4>\n<p>HAProxy, hizmeti kesintiye u\u011fratmadan yap\u0131land\u0131rma g\u00fcncellemelerini destekler. Yap\u0131land\u0131rma dosyan\u0131zda de\u011fi\u015fiklik yapt\u0131ktan sonra, <code>sudo haproxy -c -f \/etc\/haproxy\/haproxy.cfg<\/code> komutuyla hatas\u0131z oldu\u011funu do\u011frulay\u0131n. Ard\u0131ndan <code>sudo systemctl reload haproxy<\/code> komutunu kullanarak HAProxy'yi yeniden y\u00fckleyin. Bu komut, yeni bir HAProxy s\u00fcreci ba\u015flat\u0131r ve eski ba\u011flant\u0131lar\u0131 yava\u015f\u00e7a yeni s\u00fcrece aktar\u0131rken, mevcut ba\u011flant\u0131lar\u0131n sorunsuz bir \u015fekilde tamamlanmas\u0131n\u0131 sa\u011flar.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in veritabanlar\u0131n\u0131n performans\u0131 ve eri\u015filebilirli\u011fi kritik \u00f6neme sahiptir. Peki, kullan\u0131c\u0131&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-35987","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi<\/title>\n<meta name=\"description\" content=\"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in veritabanlar\u0131n\u0131n performans\u0131 ve eri\u015filebilirli\u011fi kritik \u00f6neme sahiptir. Peki, kullan\u0131c\u0131 trafi\u011fi artt\u0131\u011f\u0131nda veya bir veritaban\u0131 sunucusu ar\u0131zaland\u0131\u011f\u0131nda sisteminizin \u00e7\u00f6kmesini nas\u0131l engellersiniz? \u0130\u015fte bu noktada HAProxy port y\u00f6nlendirme, veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla sunucuya ak\u0131ll\u0131ca da\u011f\u0131tarak y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011flayan g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm olarak \u00f6ne \u00e7\u0131k\u0131yor.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi\" \/>\n<meta property=\"og:description\" content=\"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in veritabanlar\u0131n\u0131n performans\u0131 ve eri\u015filebilirli\u011fi kritik \u00f6neme sahiptir. Peki, kullan\u0131c\u0131 trafi\u011fi artt\u0131\u011f\u0131nda veya bir veritaban\u0131 sunucusu ar\u0131zaland\u0131\u011f\u0131nda sisteminizin \u00e7\u00f6kmesini nas\u0131l engellersiniz? \u0130\u015fte bu noktada HAProxy port y\u00f6nlendirme, veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla sunucuya ak\u0131ll\u0131ca da\u011f\u0131tarak y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011flayan g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm olarak \u00f6ne \u00e7\u0131k\u0131yor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-06T09:31:07+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi\",\"datePublished\":\"2025-12-06T09:31:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/\"},\"wordCount\":4473,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/\",\"name\":\"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-06T09:31:07+00:00\",\"description\":\"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in veritabanlar\u0131n\u0131n performans\u0131 ve eri\u015filebilirli\u011fi kritik \u00f6neme sahiptir. Peki, kullan\u0131c\u0131 trafi\u011fi artt\u0131\u011f\u0131nda veya bir veritaban\u0131 sunucusu ar\u0131zaland\u0131\u011f\u0131nda sisteminizin \u00e7\u00f6kmesini nas\u0131l engellersiniz? \u0130\u015fte bu noktada HAProxy port y\u00f6nlendirme, veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla sunucuya ak\u0131ll\u0131ca da\u011f\u0131tarak y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011flayan g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm olarak \u00f6ne \u00e7\u0131k\u0131yor.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi","description":"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in veritabanlar\u0131n\u0131n performans\u0131 ve eri\u015filebilirli\u011fi kritik \u00f6neme sahiptir. Peki, kullan\u0131c\u0131 trafi\u011fi artt\u0131\u011f\u0131nda veya bir veritaban\u0131 sunucusu ar\u0131zaland\u0131\u011f\u0131nda sisteminizin \u00e7\u00f6kmesini nas\u0131l engellersiniz? \u0130\u015fte bu noktada HAProxy port y\u00f6nlendirme, veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla sunucuya ak\u0131ll\u0131ca da\u011f\u0131tarak y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011flayan g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm olarak \u00f6ne \u00e7\u0131k\u0131yor.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi","og_description":"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in veritabanlar\u0131n\u0131n performans\u0131 ve eri\u015filebilirli\u011fi kritik \u00f6neme sahiptir. Peki, kullan\u0131c\u0131 trafi\u011fi artt\u0131\u011f\u0131nda veya bir veritaban\u0131 sunucusu ar\u0131zaland\u0131\u011f\u0131nda sisteminizin \u00e7\u00f6kmesini nas\u0131l engellersiniz? \u0130\u015fte bu noktada HAProxy port y\u00f6nlendirme, veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla sunucuya ak\u0131ll\u0131ca da\u011f\u0131tarak y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011flayan g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm olarak \u00f6ne \u00e7\u0131k\u0131yor.","og_url":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-06T09:31:07+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"25 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi","datePublished":"2025-12-06T09:31:07+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/"},"wordCount":4473,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/","name":"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-06T09:31:07+00:00","description":"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in veritabanlar\u0131n\u0131n performans\u0131 ve eri\u015filebilirli\u011fi kritik \u00f6neme sahiptir. Peki, kullan\u0131c\u0131 trafi\u011fi artt\u0131\u011f\u0131nda veya bir veritaban\u0131 sunucusu ar\u0131zaland\u0131\u011f\u0131nda sisteminizin \u00e7\u00f6kmesini nas\u0131l engellersiniz? \u0130\u015fte bu noktada HAProxy port y\u00f6nlendirme, veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131 birden fazla sunucuya ak\u0131ll\u0131ca da\u011f\u0131tarak y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011flayan g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm olarak \u00f6ne \u00e7\u0131k\u0131yor.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-port-yonlendirme-ile-birden-fazla-veritabani-sunucusuna-baglantilari-yonlendirme-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"HAProxy Port Y\u00f6nlendirme ile Birden Fazla Veritaban\u0131 Sunucusuna Ba\u011flant\u0131lar\u0131 Y\u00f6nlendirme Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=35987"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35987\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}