{"id":38793,"date":"2026-02-07T19:40:51","date_gmt":"2026-02-07T16:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38793"},"modified":"2026-02-07T19:40:51","modified_gmt":"2026-02-07T16:40:51","slug":"haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/","title":{"rendered":"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?"},"content":{"rendered":"<p><body><\/p>\n<h2>HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?<\/h2>\n<p>Y\u00fcksek trafikli web uygulamalar\u0131 ve servisler i\u00e7in performans, g\u00fcvenilirlik ve \u00f6l\u00e7eklenebilirlik hayati \u00f6neme sahiptir. Tek bir sunucu \u00fczerinde \u00e7al\u0131\u015fan bir uygulama, belirli bir trafik e\u015fi\u011fini a\u015ft\u0131\u011f\u0131nda yava\u015flamaya, hatta tamamen eri\u015filemez hale gelmeye ba\u015flayabilir. \u0130\u015fte bu noktada &#8220;y\u00fck dengeleme&#8221; devreye girer. Y\u00fck dengeleme, gelen a\u011f trafi\u011fini birden fazla sunucu aras\u0131nda da\u011f\u0131tarak tek bir sunucunun a\u015f\u0131r\u0131 y\u00fcklenmesini \u00f6nleyen, b\u00f6ylece uygulaman\u0131n veya servisin s\u00fcrekli olarak y\u00fcksek performansla \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir y\u00f6ntemdir. Bu kapsaml\u0131 teknik makalede, HAProxy kullanarak bir Ubuntu Sanal \u00d6zel Sunucu (VPS) \u00fczerinde HTTP y\u00fck dengelemenin nas\u0131l kurulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>Y\u00fck Dengelemenin Temelleri<\/h3>\n<p>Y\u00fck dengeleme, modern web mimarilerinin temel ta\u015flar\u0131ndan biridir. Bir a\u011f ge\u00e7idi gibi davranarak, istemcilerden gelen istekleri \u00f6nceden tan\u0131mlanm\u0131\u015f bir dizi kurala g\u00f6re birden fazla arka u\u00e7 (backend) sunucusuna y\u00f6nlendirir. Bu i\u015flem, hem performans\u0131 art\u0131r\u0131r hem de sistemin genel g\u00fcvenilirli\u011fini sa\u011flar.<\/p>\n<h4>Y\u00fck Dengeleme Nedir?<\/h4>\n<p>Y\u00fck dengeleme, basit\u00e7e, bir uygulaman\u0131n veya servisin taleplerini birden fazla sunucuya e\u015fit veya optimize edilmi\u015f bir \u015fekilde da\u011f\u0131tma i\u015flemidir. Bu sayede her sunucuya d\u00fc\u015fen y\u00fck azal\u0131r, yan\u0131t s\u00fcreleri k\u0131sal\u0131r ve ayn\u0131 anda daha fazla iste\u011fin i\u015flenmesi m\u00fcmk\u00fcn olur. Y\u00fck dengeleyici, bir sunucu ar\u0131zaland\u0131\u011f\u0131nda trafi\u011fi otomatik olarak sa\u011fl\u0131kl\u0131 sunuculara y\u00f6nlendirerek hizmet kesintisini en aza indirir.<\/p>\n<h4>Neden Y\u00fck Dengelemeye \u0130htiya\u00e7 Duyar\u0131z?<\/h4>\n<p>*   <strong>Performans ve H\u0131z:<\/strong> Gelen istekleri birden fazla sunucuya da\u011f\u0131tarak, her bir iste\u011fin daha h\u0131zl\u0131 i\u015flenmesini sa\u011flar. Bu, web sitelerinin ve uygulamalar\u0131n genel yan\u0131t s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir.<br \/>\n*   <strong>Y\u00fcksek Eri\u015filebilirlik (High Availability):<\/strong> Y\u00fck dengeleyici, arka u\u00e7 sunucular\u0131n\u0131n sa\u011fl\u0131k durumlar\u0131n\u0131 s\u00fcrekli olarak kontrol eder. Bir sunucu yan\u0131t vermedi\u011finde veya ar\u0131zaland\u0131\u011f\u0131nda, trafi\u011fi otomatik olarak di\u011fer sa\u011fl\u0131kl\u0131 sunuculara y\u00f6nlendirir. Bu, tek bir hata noktas\u0131n\u0131n (Single Point of Failure) olu\u015fmas\u0131n\u0131 engeller ve hizmetin kesintisiz devam etmesini sa\u011flar.<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik (Scalability):<\/strong> Uygulaman\u0131z\u0131n trafik talepleri artt\u0131\u011f\u0131nda, mevcut sisteme kolayca yeni sunucular ekleyerek kapasiteyi art\u0131rabilirsiniz. Y\u00fck dengeleyici, bu yeni sunucular\u0131 otomatik olarak yap\u0131land\u0131rmaya dahil eder ve trafi\u011fi onlara da y\u00f6nlendirmeye ba\u015flar. Bu, dikey \u00f6l\u00e7eklendirme (daha g\u00fc\u00e7l\u00fc bir sunucuya ge\u00e7mek) yerine yatay \u00f6l\u00e7eklendirme (daha fazla sunucu eklemek) imkan\u0131 sunar.<br \/>\n*   <strong>Esneklik:<\/strong> Y\u00fck dengeleme, sunucu bak\u0131m\u0131 veya g\u00fcncellemeler s\u0131ras\u0131nda hizmet kesintisi olmadan sunucular\u0131n devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131p tekrar devreye al\u0131nmas\u0131na olanak tan\u0131r.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> Y\u00fck dengeleyiciler, DDoS sald\u0131r\u0131lar\u0131na kar\u015f\u0131 bir ilk savunma hatt\u0131 olarak hareket edebilir ve belirli g\u00fcvenlik politikalar\u0131n\u0131 uygulayabilir.<\/p>\n<h4>Y\u00fck Dengeleme Algoritmalar\u0131<\/h4>\n<p>Y\u00fck dengeleyiciler, gelen trafi\u011fi arka u\u00e7 sunucular\u0131na da\u011f\u0131tmak i\u00e7in \u00e7e\u015fitli algoritmalardan yararlan\u0131r:<\/p>\n<p>*   <strong>Round Robin:<\/strong> \u0130stekleri s\u0131rayla her sunucuya birer birer g\u00f6nderir. En basit ve en yayg\u0131n algoritmad\u0131r.<br \/>\n*   <strong>Least Connection:<\/strong> O anda en az aktif ba\u011flant\u0131ya sahip olan sunucuya istek g\u00f6nderir. Daha yo\u011fun i\u015f y\u00fck\u00fcne sahip sunucular\u0131n a\u015f\u0131r\u0131 y\u00fcklenmesini engellemeye yard\u0131mc\u0131 olur.<br \/>\n*   <strong>Source IP Hash:<\/strong> \u0130stemcinin IP adresini kullanarak bir karma (hash) de\u011feri olu\u015fturur ve bu de\u011fere g\u00f6re sunucu se\u00e7er. Ayn\u0131 istemcinin her zaman ayn\u0131 sunucuya y\u00f6nlendirilmesini sa\u011flar (sticky sessions i\u00e7in kullan\u0131\u015fl\u0131d\u0131r).<br \/>\n*   <strong>Least Time:<\/strong> Sunucular\u0131n yan\u0131t s\u00fcrelerini ve aktif ba\u011flant\u0131lar\u0131n\u0131 dikkate alarak en h\u0131zl\u0131 yan\u0131t veren sunucuya istek g\u00f6nderir.<br \/>\n*   <strong>Weighted Round Robin\/Least Connection:<\/strong> Sunuculara a\u011f\u0131rl\u0131k (weight) de\u011ferleri atan\u0131r. Daha y\u00fcksek a\u011f\u0131rl\u0131\u011fa sahip sunuculara daha fazla istek g\u00f6nderilir. Donan\u0131m kapasitesi farkl\u0131 olan sunucular i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3>HAProxy Nedir?<\/h3>\n<p>HAProxy (High Availability Proxy), TCP ve HTTP tabanl\u0131 uygulamalar i\u00e7in \u00fccretsiz, a\u00e7\u0131k kaynakl\u0131 ve y\u00fcksek performansl\u0131 bir y\u00fck dengeleyici ve proxy sunucusudur. Genellikle \u00e7ok y\u00fcksek trafikli web sitelerinin mimarilerinde kullan\u0131l\u0131r ve milyonlarca e\u015fzamanl\u0131 ba\u011flant\u0131y\u0131 i\u015fleyebilecek \u015fekilde tasarlanm\u0131\u015ft\u0131r.<\/p>\n<h4>HAProxy&#8217;nin Tan\u0131m\u0131 ve \u00d6zellikleri<\/h4>\n<p>HAProxy, \u00f6zellikle HTTP ve TCP protokolleri i\u00e7in optimize edilmi\u015f, hafif ve son derece yap\u0131land\u0131r\u0131labilir bir \u00e7\u00f6z\u00fcmd\u00fcr. \u0130\u015fte temel \u00f6zellikleri:<\/p>\n<p>*   <strong>Y\u00fcksek Performans:<\/strong> D\u00fc\u015f\u00fck CPU ve bellek t\u00fcketimiyle y\u00fcksek throughput ve d\u00fc\u015f\u00fck gecikme s\u00fcreleri sunar.<br \/>\n*   <strong>Esnek Yap\u0131land\u0131rma:<\/strong> Kapsaml\u0131 bir yap\u0131land\u0131rma dili sayesinde \u00e7ok \u00e7e\u015fitli senaryolara uyarlanabilir. ACL&#8217;ler (Access Control Lists) ile karma\u015f\u0131k y\u00f6nlendirme kurallar\u0131 tan\u0131mlanabilir.<br \/>\n*   <strong>Y\u00fcksek Eri\u015filebilirlik:<\/strong> Arka u\u00e7 sunucular\u0131n\u0131n sa\u011fl\u0131k durumunu s\u00fcrekli izler ve ar\u0131zal\u0131 sunucular\u0131 otomatik olarak havuzdan \u00e7\u0131kar\u0131r.<br \/>\n*   <strong>SSL\/TLS Sonland\u0131rma:<\/strong> SSL\/TLS \u015fifrelemesini HAProxy \u00fczerinde sonland\u0131rarak arka u\u00e7 sunucular\u0131n\u0131n y\u00fck\u00fcn\u00fc hafifletebilir.<br \/>\n*   <strong>Sticky Sessions:<\/strong> Belirli bir istemcinin her zaman ayn\u0131 arka u\u00e7 sunucusuna y\u00f6nlendirilmesini sa\u011flayabilir, bu da oturum y\u00f6netimi gerektiren uygulamalar i\u00e7in \u00f6nemlidir.<br \/>\n*   <strong>\u0130statistik Paneli:<\/strong> Ger\u00e7ek zamanl\u0131 trafik ve sunucu durumu hakk\u0131nda bilgi sa\u011flayan bir web aray\u00fcz\u00fc sunar.<\/p>\n<h4>HAProxy&#8217;nin \u00c7al\u0131\u015fma Prensibi<\/h4>\n<p>HAProxy&#8217;nin yap\u0131land\u0131rmas\u0131 \u00fc\u00e7 ana b\u00f6l\u00fcmden olu\u015fur:<\/p>\n<p>*   <strong>Global:<\/strong> HAProxy i\u015fleminin genel ayarlar\u0131n\u0131 i\u00e7erir. Loglama, kullan\u0131c\u0131\/grup ayarlar\u0131, performans s\u0131n\u0131rlar\u0131 gibi global parametreler burada tan\u0131mlan\u0131r.<br \/>\n*   <strong>Defaults:<\/strong> Frontend ve backend b\u00f6l\u00fcmlerinde ortak olarak kullan\u0131lacak varsay\u0131lan ayarlar\u0131 i\u00e7erir. \u00d6rne\u011fin, ba\u011flant\u0131 zaman a\u015f\u0131mlar\u0131 (timeouts) gibi.<br \/>\n*   <strong>Frontend:<\/strong> \u0130stemcilerin HAProxy&#8217;ye ba\u011fland\u0131\u011f\u0131 dinleme soketini (IP adresi ve port) tan\u0131mlar. Gelen isteklerin hangi arka u\u00e7 havuzuna y\u00f6nlendirilece\u011fine dair kurallar (ACL&#8217;ler) burada belirlenir.<br \/>\n*   <strong>Backend:<\/strong> Arka u\u00e7 sunucu grubunu tan\u0131mlar. Bu gruptaki sunucular\u0131n IP adresleri ve portlar\u0131, kullan\u0131lacak y\u00fck dengeleme algoritmas\u0131 ve sa\u011fl\u0131k kontrol\u00fc ayarlar\u0131 burada yap\u0131land\u0131r\u0131l\u0131r.<br \/>\n*   <strong>Listen:<\/strong> Hem frontend hem de backend i\u015flevlerini tek bir b\u00f6l\u00fcmde birle\u015ftiren bir yap\u0131d\u0131r. Genellikle istatistik paneli veya basit y\u00fck dengeleme senaryolar\u0131 i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar ve Sistem Mimarisi<\/h3>\n<p>Bu rehber i\u00e7in a\u015fa\u011f\u0131daki \u00f6n ko\u015fullara ve bir sistem mimarisine ihtiyac\u0131m\u0131z olacak:<\/p>\n<p>*   <strong>Ubuntu VPS&#8217;ler:<\/strong> En az \u00fc\u00e7 adet Ubuntu 20.04 (veya daha yeni) VPS&#8217;e ihtiyac\u0131m\u0131z olacak:<br \/>\n    *   Bir adet HAProxy sunucusu (y\u00fck dengeleyici olarak g\u00f6rev yapacak).<br \/>\n    *   \u0130ki adet web sunucusu (\u00f6rne\u011fin Apache2 veya Nginx kurulu).<br \/>\n*   <strong>Temel A\u011f Bilgisi:<\/strong> IP adresleri, portlar ve temel a\u011f kavramlar\u0131 hakk\u0131nda bilgi sahibi olmak.<br \/>\n*   <strong>SSH Eri\u015fimi:<\/strong> T\u00fcm sunuculara SSH ile eri\u015fim yetkisi.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 (UFW):<\/strong> Sunucular aras\u0131nda do\u011fru portlar\u0131n a\u00e7\u0131k oldu\u011fundan emin olmak i\u00e7in UFW yap\u0131land\u0131rmas\u0131.<\/p>\n<p><strong>Basit Sistem Mimarisi:<\/strong><\/p>\n<pre><code class=\"language-\">\u0130stemci (Taray\u0131c\u0131)\n       |\n       | (HTTP\/HTTPS iste\u011fi)\n       V\n+---------------------+\n| HAProxy Sunucusu    | (\u00d6rn: 192.168.1.100)\n| (Y\u00fck Dengeleyici)   |\n+----------+----------+\n           |\n           | (Y\u00fck Dengeleme)\n           |\n+----------V----------+       +----------V----------+\n| Web Sunucusu 1      |       | Web Sunucusu 2      |\n| (\u00d6rn: 192.168.1.101) |       | (\u00d6rn: 192.168.1.102) |\n| (Nginx\/Apache)      |       | (Nginx\/Apache)      |\n+---------------------+       +---------------------+<\/code><\/pre>\n<p>Bu rehberde \u00f6rnek IP adresleri olarak <code>192.168.1.100<\/code> (HAProxy), <code>192.168.1.101<\/code> (Web1) ve <code>192.168.1.102<\/code> (Web2) kullanaca\u011f\u0131z. Kendi VPS&#8217;lerinizin IP adreslerini buna g\u00f6re de\u011fi\u015ftirmeyi unutmay\u0131n.<\/p>\n<h3>Ad\u0131m 1: Ubuntu VPS&#8217;lerin Haz\u0131rlanmas\u0131<\/h3>\n<p>\u00d6ncelikle t\u00fcm sunucular\u0131m\u0131z\u0131 g\u00fcncelleyelim ve web sunucular\u0131m\u0131z\u0131 haz\u0131rlayal\u0131m.<\/p>\n<h4>T\u00fcm Sunucularda Sistem G\u00fcncellemesi<\/h4>\n<p>Her bir VPS&#8217;e SSH ile ba\u011flan\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<h4>Web Sunucular\u0131na Nginx Kurulumu<\/h4>\n<p><code>web1<\/code> ve <code>web2<\/code> sunucular\u0131na Nginx kural\u0131m. Apache2 de kullanabilirsiniz, ancak Nginx daha hafif oldu\u011fu i\u00e7in bu \u00f6rnekte tercih edilmi\u015ftir.<\/p>\n<p><strong><code>web1<\/code> ve <code>web2<\/code> sunucular\u0131nda:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx -y\nsudo systemctl start nginx\nsudo systemctl enable nginx<\/code><\/pre>\n<p>Her iki sunucuda da Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code>systemctl status nginx<\/code> komutunu kullanabilirsiniz.<\/p>\n<h4>Her Web Sunucusunda Farkl\u0131 Bir \u0130\u00e7erik Olu\u015fturma<\/h4>\n<p>Y\u00fck dengelemenin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rsel olarak anlamak i\u00e7in her web sunucusunda farkl\u0131 bir <code>index.html<\/code> dosyas\u0131 olu\u015ftural\u0131m.<\/p>\n<p><strong><code>web1<\/code> sunucusunda:<\/strong><\/p>\n<pre><code class=\"language-bash\">echo \"\" | sudo tee \/var\/www\/html\/index.nginx-debian.html<\/code><\/pre>\n<p><strong><code>web2<\/code> sunucusunda:<\/strong><\/p>\n<pre><code class=\"language-bash\">echo \"\" | sudo tee \/var\/www\/html\/index.nginx-debian.html<\/code><\/pre>\n<p>Bu sayede HAProxy \u00fczerinden eri\u015fti\u011finizde hangi sunucudan yan\u0131t ald\u0131\u011f\u0131n\u0131z\u0131 g\u00f6rebileceksiniz.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 (UFW) Ayarlar\u0131<\/h4>\n<p>T\u00fcm sunucularda SSH (22) portunun ve HTTP (80) portunun a\u00e7\u0131k oldu\u011fundan emin olal\u0131m. E\u011fer HTTPS (443) kullanacaksan\u0131z onu da a\u00e7man\u0131z gerekecek.<\/p>\n<p><strong>T\u00fcm sunucularda (HAProxy, web1, web2):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH\nsudo ufw allow 'Nginx HTTP' # veya sudo ufw allow 80\/tcp\nsudo ufw enable\nsudo ufw status<\/code><\/pre>\n<p><code>web1<\/code> ve <code>web2<\/code> sunucular\u0131nda, web sunucular\u0131n\u0131n IP adreslerine do\u011frudan taray\u0131c\u0131dan eri\u015ferek Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve \u00f6zel sayfalar\u0131n\u0131z\u0131n g\u00f6r\u00fcnd\u00fc\u011f\u00fcn\u00fc test edebilirsiniz.<\/p>\n<h3>Ad\u0131m 2: HAProxy Kurulumu<\/h3>\n<p>\u015eimdi HAProxy sunucumuza ge\u00e7elim ve HAProxy&#8217;yi kural\u0131m.<\/p>\n<p><strong><code>haproxy<\/code> sunucusunda (192.168.1.100):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install haproxy -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra HAProxy servisinin durumunu kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status haproxy<\/code><\/pre>\n<p>Servis <code>active (exited)<\/code> veya <code>active (running)<\/code> \u015feklinde g\u00f6r\u00fcnmelidir. <code>exited<\/code> olmas\u0131 normaldir \u00e7\u00fcnk\u00fc hen\u00fcz bir yap\u0131land\u0131rma yapmad\u0131k.<\/p>\n<h3>Ad\u0131m 3: HAProxy Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>HAProxy&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/haproxy\/haproxy.cfg<\/code> konumundad\u0131r. Bu dosyay\u0131 d\u00fczenleyerek y\u00fck dengelemeyi ayarlayaca\u011f\u0131z.<\/p>\n<p>\u00d6ncelikle mevcut yap\u0131land\u0131rma dosyas\u0131n\u0131n bir yede\u011fini alal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo cp \/etc\/haproxy\/haproxy.cfg \/etc\/haproxy\/haproxy.cfg.bak<\/code><\/pre>\n<p>\u015eimdi dosyay\u0131 bir metin d\u00fczenleyici ile a\u00e7al\u0131m (\u00f6rne\u011fin <code>nano<\/code>):<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/haproxy\/haproxy.cfg<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7eri\u011fini temizleyip veya mevcut ayarlar\u0131 d\u00fczenleyerek a\u015fa\u011f\u0131daki yap\u0131land\u0131rmay\u0131 ekleyelim. A\u00e7\u0131klamalar her b\u00f6l\u00fcm\u00fcn ne i\u015fe yarad\u0131\u011f\u0131n\u0131 anlatacakt\u0131r.<\/p>\n<pre><code class=\"language-ini\"># Global Ayarlar\n<h2>HAProxy i\u015fleminin genel ayarlar\u0131n\u0131 i\u00e7erir.<\/h2>\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    maxconn 20000 # Maksimum e\u015fzamanl\u0131 ba\u011flant\u0131 say\u0131s\u0131\n\n    # SSL\/TLS i\u00e7in performans iyile\u015ftirmeleri (iste\u011fe ba\u011fl\u0131)\n    ssl-default-bind-ciphers ECDHE+AESGCM:DH+AESGCM:ECDHE+AES256:DH+AES256:ECDHE+AES128:DH+AES128:RSA+AESGCM:RSA+AES256:RSA+AES128:!aNULL:!MD5:!DSS\n    ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11\n    tune.ssl.default-dh-param 2048\n\n<h2>Varsay\u0131lan Ayarlar<\/h2>\n<h2>Frontend ve backend b\u00f6l\u00fcmlerinde ortak olarak kullan\u0131lacak varsay\u0131lan ayarlar.<\/h2>\ndefaults\n    log     global\n    mode    http # HTTP trafi\u011fi i\u00e7in 'http', TCP i\u00e7in 'tcp'\n    option  httplog\n    option  dontlognull\n    timeout connect 5000ms # Backend sunucusuna ba\u011flant\u0131 zaman a\u015f\u0131m\u0131\n    timeout client  50000ms # \u0130stemci ba\u011flant\u0131 zaman a\u015f\u0131m\u0131\n    timeout server  50000ms # Backend sunucusuna veri g\u00f6nderme\/alma zaman a\u015f\u0131m\u0131\n    errorfile 400 \/etc\/haproxy\/errors\/400.http\n    errorfile 403 \/etc\/haproxy\/errors\/403.http\n    errorfile 408 \/etc\/haproxy\/errors\/408.http\n    errorfile 500 \/etc\/haproxy\/errors\/500.http\n    errorfile 502 \/etc\/haproxy\/errors\/502.http\n    errorfile 503 \/etc\/haproxy\/errors\/503.http\n    errorfile 504 \/etc\/haproxy\/errors\/504.http\n\n<h2>Frontend Tan\u0131m\u0131<\/h2>\n<h2>\u0130stemcilerin HAProxy'ye ba\u011fland\u0131\u011f\u0131 dinleme noktas\u0131.<\/h2>\nfrontend http_frontend\n    bind *:80 # HAProxy sunucusunun 80. portundan gelen t\u00fcm HTTP isteklerini dinle\n    mode http\n    default_backend web_servers # Gelen istekleri 'web_servers' backend grubuna y\u00f6nlendir\n\n<h2>Backend Tan\u0131m\u0131<\/h2>\n<h2>Arka u\u00e7 web sunucular\u0131n\u0131n tan\u0131mland\u0131\u011f\u0131 grup.<\/h2>\nbackend web_servers\n    mode http\n    balance roundrobin # Y\u00fck dengeleme algoritmas\u0131: Round Robin\n    option httpchk GET \/index.nginx-debian.html # Sa\u011fl\u0131k kontrol\u00fc i\u00e7in HTTP GET iste\u011fi\n    server web1 192.168.1.101:80 check # Web Sunucusu 1, IP:Port, sa\u011fl\u0131k kontrol\u00fc aktif\n    server web2 192.168.1.102:80 check # Web Sunucusu 2, IP:Port, sa\u011fl\u0131k kontrol\u00fc aktif\n\n<h2>HAProxy \u0130statistik Paneli<\/h2>\n<h2>HAProxy'nin durumunu ve arka u\u00e7 sunucular\u0131n\u0131n sa\u011fl\u0131\u011f\u0131n\u0131 izlemek i\u00e7in bir web aray\u00fcz\u00fc.<\/h2>\nlisten stats\n    bind *:8080 # \u0130statistik panelini 8080 portundan yay\u0131nla\n    mode http\n    stats enable # \u0130statistik panelini etkinle\u015ftir\n    stats uri \/haproxy?stats # \u0130statistik paneline eri\u015fim URI'si\n    stats realm Haproxy\\ Statistics # Kimlik do\u011frulama ba\u015fl\u0131\u011f\u0131\n    stats auth admin:password123 # Kimlik do\u011frulama kullan\u0131c\u0131 ad\u0131 ve \u015fifresi (ger\u00e7ek projelerde g\u00fc\u00e7l\u00fc bir \u015fifre kullan\u0131n!)\n    stats refresh 10s # Sayfay\u0131 her 10 saniyede bir yenile<\/code><\/pre>\n<p><strong>Yap\u0131land\u0131rma Dosyas\u0131 A\u00e7\u0131klamalar\u0131:<\/strong><\/p>\n<p>*   <strong><code>global<\/code>:<\/strong> HAProxy&#8217;nin genel davran\u0131\u015f\u0131n\u0131 belirler. <code>log<\/code> ayar\u0131, <code>chroot<\/code> dizini, <code>user<\/code> ve <code>group<\/code> gibi temel g\u00fcvenlik ve \u00e7al\u0131\u015fma ortam\u0131 ayarlar\u0131 buradad\u0131r. <code>maxconn<\/code> maksimum e\u015fzamanl\u0131 ba\u011flant\u0131 say\u0131s\u0131n\u0131 belirler. SSL ayarlar\u0131, e\u011fer SSL sonland\u0131rma yapacaksan\u0131z \u00f6nemlidir.<br \/>\n*   <strong><code>defaults<\/code>:<\/strong> <code>frontend<\/code> ve <code>backend<\/code> b\u00f6l\u00fcmlerinde varsay\u0131lan olarak uygulanacak ayarlar\u0131 i\u00e7erir. <code>mode http<\/code> HTTP trafi\u011fi i\u015fleyece\u011fimizi belirtir. <code>timeout<\/code> de\u011ferleri, ba\u011flant\u0131lar\u0131n ne kadar s\u00fcreyle a\u00e7\u0131k kalaca\u011f\u0131n\u0131 veya ne kadar s\u00fcre sonra zaman a\u015f\u0131m\u0131na u\u011frayaca\u011f\u0131n\u0131 kontrol eder. <code>errorfile<\/code> direktifleri, HAProxy&#8217;nin belirli HTTP hata kodlar\u0131 i\u00e7in \u00f6zel hata sayfalar\u0131 sunmas\u0131n\u0131 sa\u011flar. Bu dosyalar\u0131 <code>\/etc\/haproxy\/errors\/<\/code> dizininde olu\u015fturman\u0131z gerekir, ancak bu rehberde varsay\u0131lanlar\u0131 kullanaca\u011f\u0131z.<br \/>\n<em>   <strong><code>frontend http_frontend<\/code>:<\/strong> Bu b\u00f6l\u00fcm, istemcilerin HAProxy&#8217;ye ba\u011fland\u0131\u011f\u0131 noktay\u0131 tan\u0131mlar. <code>bind <\/em>:80<\/code> HAProxy sunucusunun t\u00fcm IP adreslerinden gelen 80 numaral\u0131 porttaki HTTP isteklerini dinlemesini sa\u011flar. <code>default_backend web_servers<\/code> ise bu frontend&#8217;e gelen t\u00fcm isteklerin <code>web_servers<\/code> ad\u0131ndaki backend grubuna y\u00f6nlendirilece\u011fini belirtir.<br \/>\n*   <strong><code>backend web_servers<\/code>:<\/strong> Bu b\u00f6l\u00fcm, ger\u00e7ek web sunucular\u0131m\u0131z\u0131 tan\u0131mlar.<br \/>\n    *   <code>mode http<\/code>: Yine HTTP trafi\u011fi i\u015fleyece\u011fimizi belirtir.<br \/>\n    *   <code>balance roundrobin<\/code>: Y\u00fck dengeleme algoritmas\u0131n\u0131 <code>Round Robin<\/code> olarak ayarlar. Di\u011fer se\u00e7enekler aras\u0131nda <code>leastconn<\/code> (en az ba\u011flant\u0131), <code>source<\/code> (kaynak IP&#8217;ye g\u00f6re) vb. bulunur.<br \/>\n    *   <code>option httpchk GET \/index.nginx-debian.html<\/code>: HAProxy&#8217;nin arka u\u00e7 sunucular\u0131n\u0131n sa\u011fl\u0131kl\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in <code>\/index.nginx-debian.html<\/code> adresine bir HTTP GET iste\u011fi g\u00f6ndermesini sa\u011flar. E\u011fer sunucu bu iste\u011fe ba\u015far\u0131l\u0131 bir yan\u0131t (2xx veya 3xx) verirse, sa\u011fl\u0131kl\u0131 kabul edilir.<br \/>\n    *   <code>server web1 192.168.1.101:80 check<\/code>: <code>web1<\/code> ad\u0131nda bir sunucu tan\u0131mlar. IP adresi <code>192.168.1.101<\/code>, portu <code>80<\/code>&#8216;dir. <code>check<\/code> anahtar kelimesi, bu sunucu \u00fczerinde sa\u011fl\u0131k kontrol\u00fcn\u00fcn aktif olmas\u0131n\u0131 sa\u011flar. Ayn\u0131 \u015fekilde <code>web2<\/code> sunucusu da tan\u0131mlan\u0131r.<br \/>\n*   <strong><code>listen stats<\/code>:<\/strong> Bu b\u00f6l\u00fcm, HAProxy&#8217;nin dahili istatistik paneli i\u00e7in bir dinleyici tan\u0131mlar.<br \/>\n    <em>   <code>bind <\/em>:8080<\/code>: \u0130statistik panelinin HAProxy sunucusunun 8080 portundan eri\u015filebilir olmas\u0131n\u0131 sa\u011flar.<br \/>\n    *   <code>stats enable<\/code>: \u0130statistik panelini etkinle\u015ftirir.<br \/>\n    *   <code>stats uri \/haproxy?stats<\/code>: Panele eri\u015fmek i\u00e7in kullan\u0131lacak URI&#8217;yi belirtir.<br \/>\n    *   <code>stats realm Haproxy\\ Statistics<\/code>: Taray\u0131c\u0131da g\u00f6sterilecek kimlik do\u011frulama ba\u015fl\u0131\u011f\u0131n\u0131 belirler.<br \/>\n    *   <code>stats auth admin:password123<\/code>: \u0130statistik paneline eri\u015fim i\u00e7in bir kullan\u0131c\u0131 ad\u0131 (<code>admin<\/code>) ve \u015fifre (<code>password123<\/code>) belirler. <strong>Ger\u00e7ek bir \u00fcretim ortam\u0131nda bu \u015fifreyi kesinlikle de\u011fi\u015ftirin!<\/strong><br \/>\n    *   <code>stats refresh 10s<\/code>: \u0130statistik sayfas\u0131n\u0131n her 10 saniyede bir otomatik olarak yenilenmesini sa\u011flar.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra (nano&#8217;da <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code>), g\u00fcvenlik duvar\u0131nda 8080 portunu a\u00e7may\u0131 unutmay\u0131n:<\/p>\n<p><strong><code>haproxy<\/code> sunucusunda:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 8080\/tcp\nsudo ufw reload<\/code><\/pre>\n<h3>Ad\u0131m 4: HAProxy Servisini Yeniden Ba\u015flatma ve Test Etme<\/h3>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra, HAProxy servisini yeniden ba\u015flatmadan \u00f6nce s\u00f6zdizimini kontrol etmek iyi bir uygulamad\u0131r.<\/p>\n<p><strong><code>haproxy<\/code> sunucusunda:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo haproxy -c -f \/etc\/haproxy\/haproxy.cfg<\/code><\/pre>\n<p>E\u011fer herhangi bir hata yoksa, <code>Configuration file is valid<\/code> mesaj\u0131n\u0131 g\u00f6rmelisiniz. \u015eimdi servisi yeniden ba\u015flatal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart haproxy<\/code><\/pre>\n<p>Servisin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in tekrar durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status haproxy<\/code><\/pre>\n<p>\u015eimdi test etme zaman\u0131!<\/p>\n<p>1.  <strong>Y\u00fck Dengelemeyi Test Etme:<\/strong> Taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve HAProxy sunucunuzun IP adresine gidin (\u00f6rne\u011fin, <code>http:\/\/192.168.1.100<\/code>). Her yeniledi\u011finizde, s\u0131rayla &#8220;Merhaba, bu Web Sunucusu 1!&#8221; ve &#8220;Merhaba, bu Web Sunucusu 2!&#8221; mesajlar\u0131n\u0131 g\u00f6rmelisiniz. Bu, Round Robin y\u00fck dengeleme algoritmas\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<br \/>\n2.  <strong>HAProxy \u0130statistik Panelini Test Etme:<\/strong> Taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve <code>http:\/\/192.168.1.100:8080\/haproxy?stats<\/code> adresine gidin. Belirledi\u011finiz kullan\u0131c\u0131 ad\u0131 (<code>admin<\/code>) ve \u015fifre (<code>password123<\/code>) ile giri\u015f yapman\u0131z istenecektir. Giri\u015f yapt\u0131ktan sonra, arka u\u00e7 sunucular\u0131n\u0131z\u0131n (web1, web2) durumunu, mevcut ba\u011flant\u0131 say\u0131s\u0131n\u0131 ve di\u011fer istatistikleri g\u00f6steren bir panel g\u00f6receksiniz. Her iki sunucunun da &#8220;UP&#8221; (yukar\u0131da) durumda oldu\u011funu kontrol edin. E\u011fer bir sunucuyu durdurursan\u0131z (\u00f6rne\u011fin <code>sudo systemctl stop nginx<\/code> komutuyla), istatistik panelinde o sunucunun &#8220;DOWN&#8221; oldu\u011funu g\u00f6receksiniz ve HAProxy trafi\u011fi otomatik olarak di\u011fer sunucuya y\u00f6nlendirecektir.<\/p>\n<p>Tebrikler! HAProxy ile temel HTTP y\u00fck dengeleme kurulumunu ba\u015far\u0131yla tamamlad\u0131n\u0131z.<\/p>\n<h3>Geli\u015fmi\u015f HAProxy Yap\u0131land\u0131rmalar\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p>Temel kurulumu tamamlad\u0131k, ancak HAProxy&#8217;nin g\u00fcc\u00fc ve esnekli\u011fi \u00e7ok daha fazlas\u0131n\u0131 sunar. \u0130\u015fte daha geli\u015fmi\u015f senaryolar ve en iyi uygulamalar:<\/p>\n<h4>SSL\/TLS Sonland\u0131rma (SSL Offloading)<\/h4>\n<p>G\u00fcn\u00fcm\u00fczde web sitelerinin b\u00fcy\u00fck \u00e7o\u011funlu\u011fu HTTPS kullan\u0131r. SSL\/TLS \u015fifrelemesi, sunucular \u00fczerinde ek bir y\u00fck olu\u015fturur. HAProxy, bu \u015fifreleme\/\u015fifre \u00e7\u00f6zme i\u015flemini kendi \u00fczerinde yaparak arka u\u00e7 web sunucular\u0131n\u0131n y\u00fck\u00fcn\u00fc hafifletebilir. Buna SSL Offloading denir.<\/p>\n<p><strong>Nas\u0131l Yap\u0131l\u0131r:<\/strong><\/p>\n<p>1.  SSL sertifikas\u0131 (\u00f6rne\u011fin Let&#8217;s Encrypt veya kendi sertifikan\u0131z) edinmelisiniz. Sertifika ve \u00f6zel anahtar\u0131n\u0131z\u0131 tek bir <code>.pem<\/code> dosyas\u0131na birle\u015ftirmeniz gerekir. \u00d6rne\u011fin, <code>fullchain.pem<\/code> ve <code>privkey.pem<\/code> dosyalar\u0131n\u0131z varsa:<\/p>\n<pre><code class=\"language-bash\">sudo cat \/etc\/letsencrypt\/live\/alanadiniz.com\/fullchain.pem \/etc\/letsencrypt\/live\/alanadiniz.com\/privkey.pem | sudo tee \/etc\/haproxy\/certs\/alanadiniz.com.pem\n    sudo chmod -R go-rwx \/etc\/haproxy\/certs\/<\/code><\/pre>\n<p>2.  HAProxy yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>\/etc\/haproxy\/haproxy.cfg<\/code>) d\u00fczenleyin:<\/p>\n<pre><code class=\"language-ini\">frontend https_frontend\n        bind *:443 ssl crt \/etc\/haproxy\/certs\/alanadiniz.com.pem # HTTPS i\u00e7in 443 portunu dinle\n        mode http\n        reqadd X-Forwarded-Proto:\\ https # Backend'e HTTPS kullan\u0131ld\u0131\u011f\u0131n\u0131 bildir\n        default_backend web_servers\n\n    # HTTP'den HTTPS'ye y\u00f6nlendirme (iste\u011fe ba\u011fl\u0131 ama \u00f6nerilir)\n    frontend http_redirect\n        bind *:80\n        mode http\n        redirect scheme https code 301 if !{ ssl_fc }<\/code><\/pre>\n<p>    Bu yap\u0131land\u0131rmada, 443 portundan gelen HTTPS istekleri HAProxy taraf\u0131ndan \u015fifresi \u00e7\u00f6z\u00fcl\u00fcr ve <code>web_servers<\/code> backend&#8217;ine HTTP olarak y\u00f6nlendirilir. <code>X-Forwarded-Proto<\/code> ba\u015fl\u0131\u011f\u0131, backend sunucular\u0131na orijinal iste\u011fin HTTPS oldu\u011funu bildirir. HTTP&#8217;den HTTPS&#8217;ye otomatik y\u00f6nlendirme i\u00e7in ayr\u0131 bir <code>frontend http_redirect<\/code> eklenmi\u015ftir. HAProxy sunucusunda 443 portunu UFW&#8217;den a\u00e7may\u0131 unutmay\u0131n.<\/p>\n<h4>Sticky Sessions (Kal\u0131c\u0131 Oturumlar)<\/h4>\n<p>Baz\u0131 uygulamalar, bir kullan\u0131c\u0131n\u0131n t\u00fcm isteklerinin ayn\u0131 arka u\u00e7 sunucusuna gitmesini gerektirir (\u00f6rne\u011fin, oturum tabanl\u0131 uygulamalar). Buna &#8220;sticky sessions&#8221; veya &#8220;oturum kal\u0131c\u0131l\u0131\u011f\u0131&#8221; denir.<\/p>\n<p><strong>Nas\u0131l Yap\u0131l\u0131r:<\/strong><\/p>\n<p><code>backend web_servers<\/code> b\u00f6l\u00fcm\u00fcne a\u015fa\u011f\u0131daki sat\u0131rlardan birini ekleyebilirsiniz:<\/p>\n<p>*   <strong>Cookie tabanl\u0131 (\u00f6nerilen):<\/strong><\/p>\n<pre><code class=\"language-ini\">backend web_servers\n        mode http\n        balance roundrobin\n        cookie SERVERID insert indirect nocache # SERVERID ad\u0131nda bir \u00e7erez ekler\n        server web1 192.168.1.101:80 check cookie web1_id # Sunucuya \u00f6zel \u00e7erez de\u011feri\n        server web2 192.168.1.102:80 check cookie web2_id<\/code><\/pre>\n<p>    Bu, HAProxy&#8217;nin istemciye bir \u00e7erez eklemesini ve bu \u00e7erezin de\u011ferine g\u00f6re istemciyi her zaman ayn\u0131 sunucuya y\u00f6nlendirmesini sa\u011flar.<br \/>\n*   <strong>Source IP tabanl\u0131 (daha az esnek):<\/strong><\/p>\n<pre><code class=\"language-ini\">backend web_servers\n        mode http\n        balance source # \u0130stemcinin IP adresine g\u00f6re y\u00f6nlendirme\n        # ... di\u011fer sunucu tan\u0131mlar\u0131<\/code><\/pre>\n<p>    Bu y\u00f6ntem, ayn\u0131 IP adresinden gelen t\u00fcm istekleri ayn\u0131 sunucuya y\u00f6nlendirir. Ancak, NAT arkas\u0131ndaki istemciler veya mobil a\u011flar gibi durumlarda t\u00fcm istemciler ayn\u0131 IP&#8217;den gelebilece\u011fi i\u00e7in sorunlara yol a\u00e7abilir.<\/p>\n<h4>Sa\u011fl\u0131k Kontrolleri (Health Checks)<\/h4>\n<p>HAProxy&#8217;nin en \u00f6nemli \u00f6zelliklerinden biri, arka u\u00e7 sunucular\u0131n\u0131n sa\u011fl\u0131k durumunu s\u00fcrekli olarak izlemesidir. <code>check<\/code> anahtar kelimesi basit bir TCP kontrol\u00fc yapar. Daha geli\u015fmi\u015f kontroller i\u00e7in:<\/p>\n<p>*   <strong>HTTP Sa\u011fl\u0131k Kontrol\u00fc:<\/strong><\/p>\n<pre><code class=\"language-ini\">backend web_servers\n        option httpchk GET \/healthz # \/healthz URL'sine GET iste\u011fi g\u00f6nder\n        # ... sunucu tan\u0131mlar\u0131<\/code><\/pre>\n<p>    Bu, sunucunuzun belirli bir URL&#8217;ye yan\u0131t verip vermedi\u011fini kontrol eder. Sunucunuzun bu URL&#8217;ye 2xx veya 3xx durum koduyla yan\u0131t vermesi gerekir.<br \/>\n*   <strong>Bekleme S\u00fcresi ve Tekrar Deneme:<\/strong><\/p>\n<pre><code class=\"language-ini\">backend web_servers\n        server web1 192.168.1.101:80 check inter 2s fall 3 rise 2\n        # inter 2s: Her 2 saniyede bir kontrol et\n        # fall 3: 3 ard\u0131\u015f\u0131k ba\u015far\u0131s\u0131z kontrolden sonra sunucuyu DOWN i\u015faretle\n        # rise 2: 2 ard\u0131\u015f\u0131k ba\u015far\u0131l\u0131 kontrolden sonra sunucuyu UP i\u015faretle<\/code><\/pre>\n<h4>Hata Sayfalar\u0131 ve Yeniden Y\u00f6nlendirmeler<\/h4>\n<p>HAProxy, arka u\u00e7 sunucular\u0131 kullan\u0131lamad\u0131\u011f\u0131nda veya belirli hatalar olu\u015ftu\u011funda \u00f6zel hata sayfalar\u0131 sunabilir.<\/p>\n<pre><code class=\"language-ini\"># defaults b\u00f6l\u00fcm\u00fcnde:\nerrorfile 503 \/etc\/haproxy\/errors\/503.http\n<h2>\/etc\/haproxy\/errors\/503.http dosyas\u0131n\u0131 kendi \u00f6zel hata sayfan\u0131zla olu\u015fturun.<\/code><\/pre>\n<\/h2>\n<h4>Loglama ve \u0130zleme<\/h4>\n<p>HAProxy&#8217;nin loglar\u0131n\u0131 etkinle\u015ftirmek, sorun giderme ve performans analizi i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p><strong>Global b\u00f6l\u00fcmde:<\/strong><\/p>\n<pre><code class=\"language-ini\">global\n    log \/dev\/log    local0 notice # syslog \u00fczerinden loglama<\/code><\/pre>\n<p><strong>Defaults b\u00f6l\u00fcm\u00fcnde:<\/strong><\/p>\n<pre><code class=\"language-ini\">defaults\n    log     global\n    option  httplog # HTTP isteklerini logla<\/code><\/pre>\n<p>HAProxy, loglar\u0131 genellikle syslog \u00fczerinden g\u00f6nderir. Bu loglar\u0131 <code>\/var\/log\/syslog<\/code> veya <code>\/var\/log\/haproxy.log<\/code> (rsyslog yap\u0131land\u0131rmas\u0131na ba\u011fl\u0131 olarak) adresinde bulabilirsiniz. Daha detayl\u0131 loglama i\u00e7in rsyslog yap\u0131land\u0131rmas\u0131n\u0131 \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<h4>Y\u00fcksek Eri\u015filebilirlik (HA) i\u00e7in Keepalived<\/h4>\n<p>HAProxy sunucusu, tek ba\u015f\u0131na bir hata noktas\u0131 olabilir. Bu riski ortadan kald\u0131rmak i\u00e7in iki HAProxy sunucusunu Keepalived ile aktif\/pasif (veya aktif\/aktif) modda \u00e7al\u0131\u015ft\u0131rarak sanal bir IP adresi \u00fczerinden y\u00fcksek eri\u015filebilirlik sa\u011flayabilirsiniz. Keepalived, birincil HAProxy sunucusu ar\u0131zaland\u0131\u011f\u0131nda sanal IP&#8217;yi yedek HAProxy sunucusuna ta\u015f\u0131r. Bu, daha karma\u015f\u0131k bir kurulum gerektirir ancak \u00fcretim ortamlar\u0131 i\u00e7in \u015fiddetle tavsiye edilir.<\/p>\n<h4>G\u00fcvenlik<\/h4>\n<p>HAProxy, g\u00fcvenlik i\u00e7in de baz\u0131 \u00f6zellikler sunar:<\/p>\n<p>*   <strong>Rate Limiting:<\/strong> Belirli bir kaynaktan gelen istek oran\u0131n\u0131 s\u0131n\u0131rlayarak DDoS sald\u0131r\u0131lar\u0131n\u0131 hafifletebilir.<\/p>\n<pre><code class=\"language-ini\">frontend http_frontend\n        # ...\n        stick-table type ip size 1m expire 30s store http_req_rate(10s)\n        tcp-request connection track-sc1 src\n        acl too_many_requests sc1_http_req_rate gt 100 # 10 saniyede 100'den fazla istek\n        http-request deny if too_many_requests<\/code><\/pre>\n<p>*   <strong>IP Tabanl\u0131 K\u0131s\u0131tlamalar:<\/strong> Belirli IP adreslerinden gelen eri\u015fimi engelleyebilir veya izin verebilirsiniz.<\/p>\n<pre><code class=\"language-ini\">frontend http_frontend\n        # ...\n        acl bad_ip src 1.2.3.4\n        http-request deny if bad_ip<\/code><\/pre>\n<h3>Sorun Giderme (Troubleshooting) \u0130pu\u00e7lar\u0131<\/h3>\n<p>HAProxy kurulumunda veya \u00e7al\u0131\u015fmas\u0131nda sorunlarla kar\u015f\u0131la\u015f\u0131rsan\u0131z, a\u015fa\u011f\u0131daki ad\u0131mlar size yard\u0131mc\u0131 olabilir:<\/p>\n<p>*   <strong>HAProxy Loglar\u0131n\u0131 Kontrol Edin:<\/strong> En \u00f6nemli ilk ad\u0131md\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo journalctl -u haproxy\n    sudo tail -f \/var\/log\/syslog # veya \/var\/log\/haproxy.log<\/code><\/pre>\n<p>    Loglar size yap\u0131land\u0131rma hatalar\u0131, ba\u011flant\u0131 sorunlar\u0131 veya arka u\u00e7 sunucu ar\u0131zalar\u0131 hakk\u0131nda bilgi verecektir.<br \/>\n*   <strong>Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Kontrol Edin:<\/strong> S\u00f6zdizimi hatalar\u0131 yayg\u0131n bir sorundur.<\/p>\n<pre><code class=\"language-bash\">sudo haproxy -c -f \/etc\/haproxy\/haproxy.cfg<\/code><\/pre>\n<p>    Hata mesajlar\u0131n\u0131 dikkatlice okuyun.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131n\u0131 Kontrol Edin:<\/strong> HAProxy sunucusunda 80 (HTTP), 443 (HTTPS) ve 8080 (Stats) portlar\u0131n\u0131n a\u00e7\u0131k oldu\u011fundan emin olun. Arka u\u00e7 sunucular\u0131nda 80 (veya uygulaman\u0131z\u0131n kulland\u0131\u011f\u0131 port) portunun a\u00e7\u0131k oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\">sudo ufw status verbose<\/code><\/pre>\n<p>*   <strong>Backend Sunucular\u0131n\u0131n Eri\u015filebilirli\u011fini Kontrol Edin:<\/strong> HAProxy sunucusundan arka u\u00e7 web sunucular\u0131na do\u011frudan eri\u015febildi\u011finizden emin olun.<\/p>\n<pre><code class=\"language-bash\">curl http:\/\/192.168.1.101\/index.nginx-debian.html\n    telnet 192.168.1.101 80<\/code><\/pre>\n<p>    E\u011fer <code>curl<\/code> veya <code>telnet<\/code> ile eri\u015femiyorsan\u0131z, arka u\u00e7 sunucusunun kendisinde veya a\u011f yap\u0131land\u0131rmas\u0131nda bir sorun vard\u0131r.<br \/>\n*   <strong>HAProxy Servisinin \u00c7al\u0131\u015ft\u0131\u011f\u0131ndan Emin Olun:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl status haproxy<\/code><\/pre>\n<p>    Servis durmu\u015fsa veya hata veriyorsa, loglar\u0131 kontrol edin.<br \/>\n*   <strong>HAProxy \u0130statistik Panelini Kullan\u0131n:<\/strong> \u0130statistik paneli, arka u\u00e7 sunucular\u0131n\u0131n sa\u011fl\u0131k durumunu ve trafi\u011fi g\u00f6rsel olarak izlemek i\u00e7in harika bir ara\u00e7t\u0131r. Bir sunucu &#8220;DOWN&#8221; g\u00f6r\u00fcn\u00fcyorsa, o sunucunun loglar\u0131n\u0131 ve servis durumunu kontrol edin.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, HAProxy kullanarak bir Ubuntu VPS \u00fczerinde HTTP y\u00fck dengelemenin nas\u0131l kurulaca\u011f\u0131n\u0131 ayr\u0131nt\u0131l\u0131 bir \u015fekilde ele ald\u0131k. Temel kurulumdan ba\u015flayarak, global, defaults, frontend ve backend b\u00f6l\u00fcmlerinin nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131, y\u00fck dengeleme algoritmalar\u0131n\u0131 ve sa\u011fl\u0131k kontrollerini \u00f6\u011frendik. Ayr\u0131ca, HAProxy istatistik panelini etkinle\u015ftirerek sistemin durumunu izleme yetene\u011fi kazand\u0131k.<\/p>\n<p>Daha sonra, SSL\/TLS sonland\u0131rma, sticky sessions, geli\u015fmi\u015f sa\u011fl\u0131k kontrolleri, \u00f6zel hata sayfalar\u0131, loglama ve g\u00fcvenlik gibi geli\u015fmi\u015f HAProxy \u00f6zelliklerine de\u011findik. Son olarak, kar\u015f\u0131la\u015f\u0131labilecek sorunlar\u0131 gidermek i\u00e7in pratik ipu\u00e7lar\u0131 sunduk.<\/p>\n<p>HAProxy, y\u00fcksek performansl\u0131 ve esnek bir y\u00fck dengeleme \u00e7\u00f6z\u00fcm\u00fc sunarak web uygulamalar\u0131n\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini, g\u00fcvenilirli\u011fini ve performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Bu rehberdeki bilgileri kullanarak kendi altyap\u0131n\u0131z i\u00e7in sa\u011flam bir y\u00fck dengeleme \u00e7\u00f6z\u00fcm\u00fc olu\u015fturabilir ve web servislerinizi daha g\u00fc\u00e7l\u00fc hale getirebilirsiniz. Unutmay\u0131n, \u00fcretim ortamlar\u0131nda her zaman g\u00fc\u00e7l\u00fc \u015fifreler kullan\u0131n ve g\u00fcvenlik en iyi uygulamalar\u0131na uyun.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?\nY\u00fcksek trafikli web uygulamalar\u0131 ve servisler i\u00e7in performans, g\u00fcvenilirlik","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":[1468],"tags":[],"class_list":{"0":"post-38793","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","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 ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?\" \/>\n<meta property=\"og:description\" content=\"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur? Y\u00fcksek trafikli web uygulamalar\u0131 ve servisler i\u00e7in performans, g\u00fcvenilirlik\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-07T16:40:51+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=\"21 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?\",\"datePublished\":\"2026-02-07T16:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/\"},\"wordCount\":3142,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/\",\"name\":\"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-07T16:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?\"}]},{\"@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 ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/","og_locale":"tr_TR","og_type":"article","og_title":"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?","og_description":"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur? Y\u00fcksek trafikli web uygulamalar\u0131 ve servisler i\u00e7in performans, g\u00fcvenilirlik","og_url":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-07T16:40:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"21 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?","datePublished":"2026-02-07T16:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/"},"wordCount":3142,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/","url":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/","name":"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-07T16:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/haproxy-ile-ubuntu-vps-uzerinde-http-yuk-dengeleme-nasil-kurulur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"HAProxy ile Ubuntu VPS \u00dczerinde HTTP Y\u00fck Dengeleme Nas\u0131l Kurulur?"}]},{"@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\/38793","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=38793"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38793\/revisions"}],"predecessor-version":[{"id":38794,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38793\/revisions\/38794"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}