{"id":1782,"date":"2025-11-13T18:39:52","date_gmt":"2025-11-13T15:39:52","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/yuksek-trafikli-wordpress-laravelde-linux-tcp-tuning-sysctl-ayarlari-udp-bufferlari-ve-syn-flooda-karsi-sakin-kalmak\/"},"modified":"2025-11-13T18:39:52","modified_gmt":"2025-11-13T15:39:52","slug":"yuksek-trafikli-wordpress-laravelde-linux-tcp-tuning-sysctl-ayarlari-udp-bufferlari-ve-syn-flooda-karsi-sakin-kalmak","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/yuksek-trafikli-wordpress-laravelde-linux-tcp-tuning-sysctl-ayarlari-udp-bufferlari-ve-syn-flooda-karsi-sakin-kalmak\/","title":{"rendered":"Y\u00fcksek Trafikli WordPress\/Laravel\u2019de Linux TCP Tuning: sysctl Ayarlar\u0131, UDP Buffer\u2019lar\u0131 ve SYN Flood\u2019a Kar\u015f\u0131 Sakin Kalmak"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#Ofiste_Bir_Trafik_Dalgasi_ve_Linuxun_Derin_Nefesi\"><span class=\"toc_number toc_depth_1\">1<\/span> Ofiste Bir Trafik Dalgas\u0131 ve Linux\u2019un Derin Nefesi<\/a><\/li><li><a href=\"#Trafik_Arttiginda_Kernel_Ne_Hisseder\"><span class=\"toc_number toc_depth_1\">2<\/span> Trafik Artt\u0131\u011f\u0131nda Kernel Ne Hisseder?<\/a><\/li><li><a href=\"#sysctl_ile_TCP_Uygulamayi_Bogmadan_Akisi_Acmak\"><span class=\"toc_number toc_depth_1\">3<\/span> sysctl ile TCP: Uygulamay\u0131 Bo\u011fmadan Ak\u0131\u015f\u0131 A\u00e7mak<\/a><ul><li><a href=\"#Backlog_ve_sirt_cantasi_metaforu\"><span class=\"toc_number toc_depth_2\">3.1<\/span> Backlog ve s\u0131rt \u00e7antas\u0131 metaforu<\/a><\/li><li><a href=\"#TIME_WAIT_keep-alive_ve_tekrar_kapidan_gecme_masrafi\"><span class=\"toc_number toc_depth_2\">3.2<\/span> TIME_WAIT, keep-alive ve tekrar kap\u0131dan ge\u00e7me masraf\u0131<\/a><\/li><li><a href=\"#Ephemeral_port_araligi_ve_tunelin_ferahlamasi\"><span class=\"toc_number toc_depth_2\">3.3<\/span> Ephemeral port aral\u0131\u011f\u0131 ve t\u00fcnelin ferahlamas\u0131<\/a><\/li><li><a href=\"#Makul_bir_baslangic_dosyasi\"><span class=\"toc_number toc_depth_2\">3.4<\/span> Makul bir ba\u015flang\u0131\u00e7 dosyas\u0131<\/a><\/li><li><a href=\"#El_sikismayi_ucuzlatmak_icin_kucuk_bir_not\"><span class=\"toc_number toc_depth_2\">3.5<\/span> El s\u0131k\u0131\u015fmay\u0131 ucuzlatmak i\u00e7in k\u00fc\u00e7\u00fck bir not<\/a><\/li><\/ul><\/li><li><a href=\"#UDP_Bufferlari_DNS_Log_ve_Metrigin_Sessiz_Kahramani\"><span class=\"toc_number toc_depth_1\">4<\/span> UDP Buffer\u2019lar\u0131: DNS, Log ve Metri\u011fin Sessiz Kahraman\u0131<\/a><\/li><li><a href=\"#SYN_Flood_Gelirse_Panik_Yok_SYN_Cookies_ve_synproxy\"><span class=\"toc_number toc_depth_1\">5<\/span> SYN Flood Gelirse Panik Yok: SYN Cookies ve synproxy<\/a><\/li><li><a href=\"#WordPress_ve_Laravelde_Pratik_Baglantilar_Nginx_PHP-FPM_Veritabani\"><span class=\"toc_number toc_depth_1\">6<\/span> WordPress ve Laravel\u2019de Pratik Ba\u011flant\u0131lar: Nginx, PHP-FPM, Veritaban\u0131<\/a><\/li><li><a href=\"#Olc_Gozlemle_Kucuk_Adimlarla_Yayina_Al\"><span class=\"toc_number toc_depth_1\">7<\/span> \u00d6l\u00e7, G\u00f6zlemle, K\u00fc\u00e7\u00fck Ad\u0131mlarla Yay\u0131na Al<\/a><\/li><li><a href=\"#Gercek_Hayattan_Kucuk_Bir_Senaryo\"><span class=\"toc_number toc_depth_1\">8<\/span> Ger\u00e7ek Hayattan K\u00fc\u00e7\u00fck Bir Senaryo<\/a><\/li><li><a href=\"#Kademeli_Yayin_ve_Geri_Donus_Plani\"><span class=\"toc_number toc_depth_1\">9<\/span> Kademeli Yay\u0131n ve Geri D\u00f6n\u00fc\u015f Plan\u0131<\/a><\/li><li><a href=\"#Son_Birkac_Pratik_Dokunus\"><span class=\"toc_number toc_depth_1\">10<\/span> Son Birka\u00e7 Pratik Dokunu\u015f<\/a><\/li><li><a href=\"#Kapanis_Kerneli_Dinlemek_Trafigi_Sakinlestirmek\"><span class=\"toc_number toc_depth_1\">11<\/span> Kapan\u0131\u015f: Kernel\u2019i Dinlemek, Trafi\u011fi Sakinle\u015ftirmek<\/a><\/li><\/ul><\/div>\n<h2 id=\"section-1\"><span id=\"Ofiste_Bir_Trafik_Dalgasi_ve_Linuxun_Derin_Nefesi\">Ofiste Bir Trafik Dalgas\u0131 ve Linux\u2019un Derin Nefesi<\/span><\/h2>\n<p>Hi\u00e7 \u015f\u00f6yle oldu mu? Normal g\u00fcnlerden biri, WordPress ma\u011fazas\u0131nda kampanya ba\u015fl\u0131yor ya da Laravel API\u2019niz bir uygulamada \u00f6ne \u00e7\u0131k\u0131yor. Panelde trafik e\u011frisi usul usul y\u00fckseliyor derken bir anda duvara \u00e7arp\u0131yorsunuz: site yava\u015f, API cevap vermiyor, loglarda zaman a\u015f\u0131m\u0131, grafikte 5xx hatalar\u0131. O an fark ediyorsunuz; sunucu g\u00fc\u00e7l\u00fc, kodunuz fena de\u011fil, ama i\u015fletim sistemi a\u011f katman\u0131nda nefesi kesilmi\u015f. Ben de tam b\u00f6yle bir g\u00fcn, kahvem so\u011furken \u201ckernel\u2019a biraz alan a\u00e7man\u0131n\u201d nelere kadir oldu\u011funu yeniden g\u00f6rd\u00fcm.<\/p>\n<p>Bu yaz\u0131da, y\u00fcksek trafikli WordPress ve Laravel uygulamalar\u0131nda <strong>Linux TCP tuning<\/strong> dedi\u011fimiz ayarlar\u0131n nas\u0131l hayata can verdi\u011fini konu\u015faca\u011f\u0131z. <strong>sysctl<\/strong> taraf\u0131nda backlog ve port aral\u0131\u011f\u0131 gibi pratik ayarlar, <strong>UDP buffer<\/strong>\u2019lar\u0131n\u0131 makul seviyeye \u00e7ekmek, bir de beklenmedik anda kap\u0131y\u0131 \u00e7alan <strong>SYN flood<\/strong>\u2019a kar\u015f\u0131 panik yapmadan al\u0131nacak basit \u00f6nlemler\u2026 Teknik detaylar\u0131 s\u0131kmadan, ger\u00e7ek hayattaki \u201cmesela \u015f\u00f6yle d\u00fc\u015f\u00fcn\u00fcn\u201d \u00f6rnekleriyle ilerleyece\u011fiz. Yolun sonunda, \u00f6l\u00e7eklenme anlar\u0131nda OS katman\u0131n\u0131n sizin i\u00e7in nas\u0131l bir g\u00fcvenlik yast\u0131\u011f\u0131na d\u00f6n\u00fc\u015ft\u00fc\u011f\u00fcn\u00fc daha net g\u00f6receksiniz.<\/p>\n<h2 id=\"section-2\"><span id=\"Trafik_Arttiginda_Kernel_Ne_Hisseder\">Trafik Artt\u0131\u011f\u0131nda Kernel Ne Hisseder?<\/span><\/h2>\n<p>Mesela bir WordPress kampanya sayfas\u0131 d\u00fc\u015f\u00fcn\u00fcn. Herkes ayn\u0131 anda geliyor, Nginx kuyru\u011fu \u015fi\u015fiyor, PHP-FPM s\u00fcre\u00e7leri yoruluyor. Ama bu foto\u011fraf\u0131n arkas\u0131nda kernel\u2019in kabul kuyru\u011fu, a\u011f s\u00fcr\u00fcc\u00fcs\u00fcn\u00fcn arabellekleri ve TCP\u2019nin ba\u011flant\u0131 i\u015fleyi\u015fi gibi g\u00f6zle g\u00f6r\u00fcnmeyen ama kritik katmanlar var. Sunucu sanki \u00f6n kap\u0131da kalabal\u0131\u011f\u0131 kar\u015f\u0131layan bir g\u00fcvenlik g\u00f6revlisi gibi; kap\u0131dan i\u00e7eri kimleri alaca\u011f\u0131n\u0131, kimleri bekletece\u011fini, kimleri geri \u00e7evirece\u011fini milisaniyeler i\u00e7inde kararla\u015ft\u0131r\u0131yor. Kap\u0131 dar ise i\u00e7eride her \u015fey iyi olsa bile giri\u015f t\u0131kan\u0131yor.<\/p>\n<p>Bu y\u00fczden OS katman\u0131na dokundu\u011funuzda, asl\u0131nda ak\u0131\u015f\u0131n en ba\u015f\u0131ndaki bo\u011faz\u0131 geni\u015fletmi\u015f oluyorsunuz. <strong>Backlog<\/strong> de\u011ferleri \u201ckap\u0131 \u00f6n\u00fc kuyru\u011fu\u201d gibi \u00e7al\u0131\u015f\u0131r. <strong>Ephemeral port aral\u0131\u011f\u0131<\/strong> istemci gibi davranan s\u00fcre\u00e7ler i\u00e7in \u201cgidi\u015f-d\u00f6n\u00fc\u015f \u015feritlerini\u201d belirler. <strong>Keep-alive<\/strong> ayarlar\u0131, tekrar tekrar kap\u0131dan ge\u00e7me masraf\u0131n\u0131 azalt\u0131r. Ve elbette, dalga bir sald\u0131r\u0131ysa ba\u015fka bir oyun plan\u0131na ihtiya\u00e7 vard\u0131r. \u0130\u015fte o noktada SYN cookies ve synproxy gibi ara\u00e7lar devreye girer.<\/p>\n<h2 id=\"section-3\"><span id=\"sysctl_ile_TCP_Uygulamayi_Bogmadan_Akisi_Acmak\">sysctl ile TCP: Uygulamay\u0131 Bo\u011fmadan Ak\u0131\u015f\u0131 A\u00e7mak<\/span><\/h2>\n<p>\u0130lk tavsiye: Ayarlar\u0131 k\u00f6rlemesine kopyalamay\u0131n. Ortam, trafik \u015fekli, NIC, container kullan\u0131m\u0131, hatta load balancer davran\u0131\u015f\u0131 bu de\u011ferlerin \u201ctatl\u0131 noktas\u0131n\u0131\u201d de\u011fi\u015ftirir. Yine de \u015funu g\u00f6rd\u00fcm; bir dizi makul ba\u015flang\u0131\u00e7 de\u011feri \u00e7o\u011fu WordPress\/Laravel i\u015f y\u00fck\u00fcnde nefes ald\u0131r\u0131yor.<\/p>\n<h3><span id=\"Backlog_ve_sirt_cantasi_metaforu\">Backlog ve s\u0131rt \u00e7antas\u0131 metaforu<\/span><\/h3>\n<p>Backlog\u2019u, kap\u0131dan i\u00e7eri girmek i\u00e7in bekleyenlerin birikme alan\u0131 gibi d\u00fc\u015f\u00fcn\u00fcn. Nginx\u2019teki accept kuyru\u011fu dolarsa ba\u011flant\u0131lar d\u00fc\u015fer. Kernel taraf\u0131nda iki kritik yer var: <strong>net.core.somaxconn<\/strong> ve <strong>net.ipv4.tcp_max_syn_backlog<\/strong>. Birincisi kabul kuyru\u011funun \u00fcst s\u0131n\u0131r\u0131, ikincisi ise \u201cel s\u0131k\u0131\u015fma\u201d a\u015famas\u0131ndaki yar\u0131m ba\u011flant\u0131lar\u0131n tamponu. Trafi\u011fin keskin dalgalar halinde geldi\u011fi WordPress kampanyalar\u0131nda bu iki de\u011ferin c\u00f6mert olmas\u0131 s\u0131kl\u0131kla i\u015fe yar\u0131yor.<\/p>\n<h3><span id=\"TIME_WAIT_keep-alive_ve_tekrar_kapidan_gecme_masrafi\">TIME_WAIT, keep-alive ve tekrar kap\u0131dan ge\u00e7me masraf\u0131<\/span><\/h3>\n<p>K\u0131sa \u00f6m\u00fcrl\u00fc ba\u011flant\u0131lar TIME_WAIT birikimine yol a\u00e7abilir. \u201cHep yeni ba\u011flant\u0131\u201d demek, her seferinde kap\u0131da kimlik kontrol\u00fc demek. <strong>Keep-alive<\/strong> ayarlar\u0131n\u0131 mant\u0131kl\u0131 tutmak, web ve API taraf\u0131nda ciddi rahatlama sa\u011flar. Nginx\u2019te keepalive ba\u011flant\u0131lar\u0131n\u0131n say\u0131s\u0131n\u0131 ve s\u00fcresini dengeli ayarlars\u0131n\u0131z, PHP-FPM taraf\u0131nda da gereksiz kapat\/a\u00e7 d\u00f6ng\u00fcs\u00fcn\u00fc azaltm\u0131\u015f olursunuz. Bu sadece uygulamay\u0131 de\u011fil, kernel\u2019i de rahatlat\u0131r.<\/p>\n<h3><span id=\"Ephemeral_port_araligi_ve_tunelin_ferahlamasi\">Ephemeral port aral\u0131\u011f\u0131 ve t\u00fcnelin ferahlamas\u0131<\/span><\/h3>\n<p>Laravel taraf\u0131nda \u00fc\u00e7\u00fcnc\u00fc servislerle yo\u011fun konu\u015fan bir API d\u00fc\u015f\u00fcn\u00fcn. \u0130stemci rol\u00fcndeki s\u00fcre\u00e7ler i\u00e7in ayr\u0131lan ge\u00e7ici port aral\u0131\u011f\u0131 dar ise, \u00e7\u0131k\u0131\u015f y\u00f6n\u00fcnde \u201cyol bitti\u201d uyar\u0131s\u0131 al\u0131rs\u0131n\u0131z. <strong>ip_local_port_range<\/strong> de\u011ferini biraz a\u00e7mak, t\u00fcnelin ferahlamas\u0131d\u0131r. \u00d6zellikle NAT arkas\u0131nda \u00fcst \u00fcste mikro servis \u00e7a\u011fr\u0131lar\u0131 varsa bunu ihmal etmeyin.<\/p>\n<h3><span id=\"Makul_bir_baslangic_dosyasi\">Makul bir ba\u015flang\u0131\u00e7 dosyas\u0131<\/span><\/h3>\n<p>A\u015fa\u011f\u0131daki \u00f6rnek, \u00e7o\u011fu senaryoda i\u015fe yarayan, ama her ortamda test edilmesi gereken sakin bir ba\u015flang\u0131\u00e7 noktas\u0131. \u201cHafif b\u00fcy\u00fck ama abart\u0131l\u0131 de\u011fil\u201d diyebilece\u011fimiz ayarlar.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># \/etc\/sysctl.d\/99-tcp-tuning.conf\n\n# Kabul kuyruklar\u0131 ve NIC arabellekleri\nnet.core.somaxconn = 8192\nnet.core.netdev_max_backlog = 16384\n\n# SYN a\u015famas\u0131ndaki yar\u0131-a\u00e7\u0131k ba\u011flant\u0131lar\nnet.ipv4.tcp_max_syn_backlog = 8192\nnet.ipv4.tcp_synack_retries = 3\nnet.ipv4.tcp_syncookies = 1\n\n# K\u0131sa \u00f6m\u00fcrl\u00fc ba\u011flant\u0131larda \u00e7abuk toparlanma\nnet.ipv4.tcp_fin_timeout = 15\n\n# Keep-alive: uzun \u00f6m\u00fcrl\u00fc ama makul\nnet.ipv4.tcp_keepalive_time = 600\nnet.ipv4.tcp_keepalive_intvl = 30\nnet.ipv4.tcp_keepalive_probes = 5\n\n# \u00c7\u0131k\u0131\u015f port aral\u0131\u011f\u0131: t\u00fcneli geni\u015flet\nnet.ipv4.ip_local_port_range = 20000 60999\n\n# MTU ve yava\u015f ba\u015flang\u0131\u00e7 davran\u0131\u015f\u0131\nnet.ipv4.tcp_mtu_probing = 1\nnet.ipv4.tcp_slow_start_after_idle = 0\n\n# TCP buffer tavanlar\u0131 (UDP i\u00e7in de \u00f6nemlidir)\nnet.core.rmem_default = 4194304\nnet.core.wmem_default = 4194304\nnet.core.rmem_max = 16777216\nnet.core.wmem_max = 16777216\n\n# Elde varsa, modern bir s\u0131k\u0131\u015f\u0131kl\u0131k kontrol\u00fc\n# (Destekli mi bakmak i\u00e7in: sysctl net.ipv4.tcp_available_congestion_control)\nnet.ipv4.tcp_congestion_control = bbr\n<\/code><\/pre>\n<p>Bu dosyay\u0131 ekledikten sonra <code>sysctl --system<\/code> ile y\u00fckleyebilirsiniz. Elbette servislerinizin ayarlar\u0131yla uyumlu olmal\u0131; \u00f6rne\u011fin Nginx\u2019te <code>worker_connections<\/code> ve <code>keepalive<\/code> limitleri \u00e7ok k\u00fc\u00e7\u00fckse, kernel taraf\u0131 tek ba\u015f\u0131na mucize yaratmaz.<\/p>\n<h3><span id=\"El_sikismayi_ucuzlatmak_icin_kucuk_bir_not\">El s\u0131k\u0131\u015fmay\u0131 ucuzlatmak i\u00e7in k\u00fc\u00e7\u00fck bir not<\/span><\/h3>\n<p>Trafi\u011finiz TLS a\u011f\u0131rl\u0131kl\u0131ysa, ilk ba\u011flant\u0131lar\u0131n maliyeti artar. Baz\u0131 ortamlarda ikili sertifika yakla\u015f\u0131m\u0131 el s\u0131k\u0131\u015fmay\u0131 \u00e7evik k\u0131lar. Bu konuda Nginx\/Apache taraf\u0131nda pratik \u00f6rnekler ar\u0131yorsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/nginx-apachede-ecdsa-rsa-ikili-ssl-uyumluluk-mu-hiz-mi-ikisini-birden-nasil-alirsin\/\">ikili SSL ile hem uyumlulu\u011fu hem h\u0131z\u0131 birlikte alma<\/a> \u00fczerine yazd\u0131\u011f\u0131m rehber i\u015finize yarayabilir.<\/p>\n<h2 id=\"section-4\"><span id=\"UDP_Bufferlari_DNS_Log_ve_Metrigin_Sessiz_Kahramani\">UDP Buffer\u2019lar\u0131: DNS, Log ve Metri\u011fin Sessiz Kahraman\u0131<\/span><\/h2>\n<p>\u201cBenim sitem TCP, UDP ile ne i\u015fim olur?\u201d diye d\u00fc\u015f\u00fcnebilirsiniz. Ger\u00e7ekte, i\u015fletim sistemi ve altyap\u0131 d\u00fcnyas\u0131nda UDP hayli me\u015fgul. DNS sorgular\u0131, syslog, metrik toplay\u0131c\u0131lar, izleme ajanlar\u0131\u2026 Trafik y\u00fckseldi\u011finde bu k\u00fc\u00e7\u00fck dalgalar\u0131n tamponlarda s\u0131k\u0131\u015fmas\u0131 can s\u0131k\u0131c\u0131 gecikmelere yol a\u00e7ar. \u00d6zellikle DNS cevab\u0131nda gecikme, t\u00fcm uygulama i\u00e7in gecikmedir.<\/p>\n<p>UDP taraf\u0131nda en s\u0131k yapt\u0131\u011f\u0131m \u015fey, \u00e7ekirdek d\u00fczeyindeki genel buffer tavanlar\u0131n\u0131 makul bir seviyeye ta\u015f\u0131mak. <strong>net.core.rmem_max<\/strong> ve <strong>net.core.wmem_max<\/strong> de\u011ferleri TCP kadar UDP i\u00e7in de \u00fcst s\u0131n\u0131rd\u0131r. Uygulamalar socket baz\u0131nda kendi buffer\u2019\u0131n\u0131 ayarlamaya \u00e7al\u0131\u015ft\u0131\u011f\u0131nda bu tavanlara \u00e7arpar. Yukar\u0131daki \u00f6rnekte 16 MB tavan, 4 MB varsay\u0131lan de\u011ferleri \u00e7o\u011fu i\u015f y\u00fck\u00fcnde iyi bir dengedir. A\u015f\u0131r\u0131 y\u00fckseltmekse ters etki yaratabilir; \u00e7ekirdek gereksiz yere b\u00fcy\u00fck tamponlar ta\u015f\u0131r, bellek bask\u0131s\u0131 artar.<\/p>\n<p>DNS taraf\u0131n\u0131 bir ad\u0131m daha g\u00fcvenceye almak isterseniz, recursive resolver\u2019\u0131n\u0131z\u0131n kendi socket buffer ayarlar\u0131n\u0131 da g\u00f6zden ge\u00e7irin. Sistem genelinin tavan\u0131 y\u00fckseldiyse, servis \u00f6zelinde \u201cben de kullanay\u0131m\u201d demesi gerekebilir. Ayr\u0131ca UDP i\u00e7in kernel\u2019de \u00fc\u00e7l\u00fc bir e\u015fik de\u011feri daha vard\u0131r (udp_mem). Bu aile, sistem \u00e7ap\u0131nda toplam tampon kullan\u0131m\u0131yla ilgilidir. Genellikle rmem\/wmem tavanlar\u0131 mant\u0131kl\u0131ysa udp_mem\u2019i ellemeye gerek kalmaz. M\u00fcdahale etmeniz gereken nadir senaryolarda ise \u00f6nce g\u00f6zlem, sonra k\u00fc\u00e7\u00fck ve kontroll\u00fc ad\u0131mlar iyi sonu\u00e7 verir.<\/p>\n<p>TCP\/UDP parametrik davran\u0131\u015f\u0131 konusunda k\u0131sa ve sade bir referans ar\u0131yorsan\u0131z, <a href=\"https:\/\/man7.org\/linux\/man-pages\/man7\/tcp.7.html\" rel=\"nofollow noopener\" target=\"_blank\">tcp(7) k\u0131lavuzundaki a\u00e7\u0131klamalar<\/a> iyi bir dost gibidir. Biraz teknik dildir ama pratikte arad\u0131\u011f\u0131n\u0131z \u00e7o\u011fu soruya yan\u0131t verir.<\/p>\n<h2 id=\"section-5\"><span id=\"SYN_Flood_Gelirse_Panik_Yok_SYN_Cookies_ve_synproxy\">SYN Flood Gelirse Panik Yok: SYN Cookies ve synproxy<\/span><\/h2>\n<p>Bazen trafik dalgas\u0131 masum de\u011fildir. Kap\u0131da ger\u00e7ek kullan\u0131c\u0131 yoktur, sadece kap\u0131y\u0131 me\u015fgul eden yar\u0131-a\u00e7\u0131k ba\u011flant\u0131lar vard\u0131r. Bu noktada <strong>tcp_syncookies<\/strong> hayat kurtar\u0131r. Kernel, el s\u0131k\u0131\u015fmay\u0131 hileli bir \u015feker gibi cebine koyar; kaynak t\u00fcketmeden kar\u015f\u0131 taraf\u0131n ciddiyetini \u00f6l\u00e7er. Basit\u00e7e, <code>net.ipv4.tcp_syncookies = 1<\/code> \u00e7o\u011fu sunucuda a\u00e7\u0131k olmal\u0131.<\/p>\n<p>Daha sert dalgalarda ise L4\/L7 taraf\u0131nda bir \u00f6n savunma hatt\u0131 kurmak iyi olur. <strong>synproxy<\/strong>, \u201ctamam sen ciddisin, gel\u201d demeden \u00f6nce gelen SYN\u2019leri s\u0131nar. Geleneksel iptables veya modern nftables ile uygulanabilir. A\u015fa\u011f\u0131da bir <em>nftables<\/em> iskeleti g\u00f6rebilirsiniz. Elbette prod ortama almadan \u00f6nce test edin.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># basit bir nftables synproxy iskeleti\n\nnft add table inet filter\nnft add chain inet filter input { type filter hook input priority 0; }\n\n# Varsay\u0131lan izin\/kurallar\u0131n\u0131z burada olsun...\n\n# SYN paketlerini tespit et ve synproxy uygula\nnft add rule inet filter input tcp flags syn tcp option maxseg size set 1460 synproxy mss 1460 wscale 7 timestamp sack-perm\n\n# Ba\u011flant\u0131n\u0131n devam\u0131ndaki paketlere izin ver\nnft add rule inet filter input ct state established,related accept\n<\/code><\/pre>\n<p>synproxy\u2019nin mant\u0131\u011f\u0131n\u0131 ve farkl\u0131 kurulum \u015fekillerini daha fazla incelemek isterseniz, <a href=\"https:\/\/wiki.nftables.org\/wiki-nftables\/index.php\/SYNPROXY\" rel=\"nofollow noopener\" target=\"_blank\">nftables taraf\u0131ndaki synproxy notlar\u0131<\/a> gayet a\u00e7\u0131klay\u0131c\u0131d\u0131r. Bir di\u011fer pratik yakla\u015f\u0131m da trafi\u011fi bir L4\/L7 y\u00fck dengeleyiciden ge\u00e7irmek. Sa\u011fl\u0131kl\u0131 health check\u2019ler ve ak\u0131ll\u0131 zaman a\u015f\u0131m\u0131 de\u011ferleriyle, dalgalar\u0131 k\u0131y\u0131da k\u0131r\u0131p uygulamaya yumu\u015fat\u0131lm\u0131\u015f trafik verirsiniz. Bu ba\u011flamda <a href=\"https:\/\/www.dchost.com\/blog\/haproxy-ile-l4-l7-yuk-dengeleme-nasil-sifir-kesinti-sunar-health-check-sticky-sessions-ve-tls-passthroughu-sade-sade-konusalim\/\">HAProxy ile L4\/L7 y\u00fck dengeleme<\/a> \u00fczerine anlatt\u0131klar\u0131m\u0131 g\u00f6z atmal\u0131k bir rehber olarak \u00f6nerebilirim.<\/p>\n<p>\u0130\u015fin bir de connection tracking taraf\u0131 var. E\u011fer sunucunuz firewall\/NAT nedeniyle <strong>conntrack<\/strong> kullan\u0131yorsa, yo\u011fun dalgalarda <strong>nf_conntrack_max<\/strong> s\u0131n\u0131r\u0131na \u00e7arpabilirsiniz. Bu durumda tablo boyutunu \u00f6l\u00e7\u00fcl\u00fc bir \u015fekilde b\u00fcy\u00fctmek gerekir. Dikkat edin; bu ayar haf\u0131zay\u0131 do\u011frudan etkiler. \u201c\u00c7ok a\u00e7ay\u0131m, rahat edeyim\u201d demek her zaman i\u015fe yaramaz.<\/p>\n<h2 id=\"section-6\"><span id=\"WordPress_ve_Laravelde_Pratik_Baglantilar_Nginx_PHP-FPM_Veritabani\">WordPress ve Laravel\u2019de Pratik Ba\u011flant\u0131lar: Nginx, PHP-FPM, Veritaban\u0131<\/span><\/h2>\n<p>Tecr\u00fcbe k\u0131sm\u0131na gelelim. WordPress ve Laravel\u2019de en s\u0131k g\u00f6rd\u00fc\u011f\u00fcm sorun, OS ve uygulama ayarlar\u0131n\u0131n birbirini bo\u011fmas\u0131. Kernel\u2019de geni\u015f backlog, ama Nginx\u2019te d\u00fc\u015f\u00fck worker ba\u011flant\u0131lar\u0131. Ya da Nginx keep-alive uzun ama PHP-FPM \u00e7ok s\u0131k\u0131l\u0131. U\u00e7lar ayn\u0131 anda esnemezse arada y\u0131rt\u0131k olu\u015fur.<\/p>\n<p>Nginx taraf\u0131nda <strong>keepalive_timeout<\/strong> ve <strong>keepalive_requests<\/strong> de\u011ferlerini, trafi\u011finizin do\u011fas\u0131na g\u00f6re ayarlay\u0131n. E\u011fer CDN veya reverse proxy arkas\u0131ndaysan\u0131z, \u00f6ndeki katman\u0131n keep-alive davran\u0131\u015f\u0131n\u0131 da hesaba kat\u0131n. \u00d6rne\u011fin uzun s\u00fcreli ba\u011flant\u0131lar, el s\u0131k\u0131\u015fma maliyetini d\u00fc\u015f\u00fcr\u00fcr. Daha iyi anla\u015f\u0131ls\u0131n diye, <a href=\"https:\/\/www.dchost.com\/blog\/cloudflare-ile-websocket-ve-grpc-yayini-nasil-hep-canli-kalir-nginx-timeout-keep%EF%BF%BDalive-ve-kesintisiz-dagitimin-sirlari\/\">Nginx timeout ve keep-alive dengesine<\/a> dair pratikleri anlatt\u0131\u011f\u0131m yaz\u0131ya g\u00f6z atabilirsiniz; konseptler benzer.<\/p>\n<p>PHP-FPM i\u00e7in havuz ayarlar\u0131 (pm, max_children, max_requests) ile TCP katman\u0131n\u0131n ritmi uyumlu olmal\u0131. \u00c7ok k\u0131sa ya\u015faml\u0131 ba\u011flant\u0131lar fazlaysa, kernel\u2019deki TIME_WAIT birikimi artar. Bu durumda keep-alive ve HTTP\/2 gibi ad\u0131mlar nefes ald\u0131r\u0131r. Elbette, \u00f6n tarafta bir reverse proxy kullanmak genellikle hem OS hem uygulama i\u00e7in hayat\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Laravel ve WordPress\u2019in veritaban\u0131 ile konu\u015fmas\u0131 ayr\u0131 bir d\u00fcnya. Burada en verimli hamlelerden biri, ba\u011flant\u0131 havuzu ve okuma-yazma ayr\u0131m\u0131. Trafik dalgas\u0131nda PHP s\u00fcre\u00e7lerinin her seferinde yeni ba\u011flant\u0131 a\u00e7mas\u0131n\u0131 beklemek, OS katman\u0131nda bo\u015funa efor demektir. <a href=\"https:\/\/www.dchost.com\/blog\/proxysql-ile-mysql-read-write-split-ve-baglanti-havuzu-woocommerce-laravel-icin-gercek-dunya-rehberi\/\">ProxySQL ile ba\u011flant\u0131 havuzu ve read\/write ayr\u0131m\u0131<\/a> \u00fczerine anlatt\u0131klar\u0131m, WooCommerce ve Laravel i\u00e7in birebir pratik sa\u011flar; bu sayede kernel\u2019deki ak\u0131\u015f da daha p\u00fcr\u00fczs\u00fcz olur.<\/p>\n<h2 id=\"section-7\"><span id=\"Olc_Gozlemle_Kucuk_Adimlarla_Yayina_Al\">\u00d6l\u00e7, G\u00f6zlemle, K\u00fc\u00e7\u00fck Ad\u0131mlarla Yay\u0131na Al<\/span><\/h2>\n<p>\u015eimdi gelelim \u201cnas\u0131l yay\u0131na alaca\u011f\u0131m\u201d sorusuna. Benim i\u015f ak\u0131\u015f\u0131m genelde \u015f\u00f6yle: \u00f6nce <strong>mevcut durumu \u00f6l\u00e7<\/strong>. <code>ss -s<\/code> ile ba\u011flant\u0131 durum da\u011f\u0131l\u0131m\u0131na bak, <code>netstat -s<\/code> ile TCP istatistiklerini izle, mikro bir y\u00fck testi ile (\u00f6rne\u011fin wrk veya hey) trafi\u011fin kabas\u0131n\u0131 sim\u00fcle et. Ard\u0131ndan, <strong>tek de\u011fi\u015fkeni oynat<\/strong>. \u00d6nce backlog, sonra keep-alive, sonra port aral\u0131\u011f\u0131\u2026 Her ad\u0131mda tekrar \u00f6l\u00e7. Bu ritim, neyin i\u015fe yarad\u0131\u011f\u0131n\u0131 size f\u0131s\u0131ldar.<\/p>\n<p>Uygulamal\u0131 bir \u00f6rnek d\u00fc\u015f\u00fcn\u00fcn. WordPress kampanya sayfan\u0131z var. \u0130lk turda <strong>net.core.somaxconn<\/strong> ile <strong>tcp_max_syn_backlog<\/strong>\u2019u y\u00fckselttiniz, mini test yapt\u0131n\u0131z. \u0130kinci turda Nginx keep-alive ayarlar\u0131n\u0131 ak\u0131\u015fa g\u00f6re uzatt\u0131n\u0131z. \u00dc\u00e7\u00fcnc\u00fc turda <strong>ip_local_port_range<\/strong> de\u011ferini geni\u015flettiniz. D\u00f6rd\u00fcnc\u00fc turda UDP buffer tavanlar\u0131n\u0131 4 MB\/16 MB seviyelerine \u00e7ektiniz. Her ad\u0131mda \u00f6l\u00e7\u00fcmler elinizde; zaman a\u015f\u0131m\u0131 azald\u0131 m\u0131, 5xx d\u00fc\u015ft\u00fc m\u00fc, p95 gecikme ne yapt\u0131?<\/p>\n<p>Bu i\u015fin belki de en g\u00f6r\u00fcnmeyen yard\u0131mc\u0131s\u0131 TLS. \u0130lk ba\u011flant\u0131 maliyetini bir miktar yumu\u015fatmak i\u00e7in, uygun g\u00f6rd\u00fc\u011f\u00fcn\u00fcz senaryolarda ECDSA ve RSA\u2019y\u0131 birlikte kullanman\u0131z faydal\u0131 olabilir. Buray\u0131 kurarken tak\u0131ld\u0131\u011f\u0131n\u0131zda, az \u00f6nce payla\u015ft\u0131\u011f\u0131m ikili SSL yaz\u0131s\u0131ndaki pratikler ad\u0131m ad\u0131m yol g\u00f6sterir.<\/p>\n<p>\u201cSavunma hatt\u0131\u201d taraf\u0131na k\u00fc\u00e7\u00fck bir hat\u0131rlatma daha: Bulut ya da edge katman\u0131 kullan\u0131yorsan\u0131z, oradaki timeout\u2019lar ve keep-alive davran\u0131\u015flar\u0131 da paket ak\u0131\u015f\u0131n\u0131z\u0131 etkiler. S\u00f6z gelimi, CDN katman\u0131n\u0131z uzun \u00f6m\u00fcrl\u00fc ba\u011flant\u0131lar\u0131 severse, backend\u2019inizin el s\u0131k\u0131\u015fma y\u00fck\u00fc azal\u0131r. Bu dengeyi kurarken, aradaki zincirin t\u00fcm halkalar\u0131n\u0131 not edin.<\/p>\n<p>Ek olarak, OS parametrelerinin davran\u0131\u015f\u0131na dair daha teknik bir referans isterseniz, <a href=\"https:\/\/www.kernel.org\/doc\/Documentation\/networking\/ip-sysctl.txt\" rel=\"nofollow noopener\" target=\"_blank\">kernel\u2019in ip-sysctl dok\u00fcmantasyonunda<\/a> sade ama i\u015fe yarar a\u00e7\u0131klamalar var. Ayarlar\u0131n yan etkilerini g\u00f6rmek i\u00e7in k\u0131sa notlar tutun; bir sonraki yay\u0131nda kendi mini rehberiniz oluyorlar.<\/p>\n<h2 id=\"section-8\"><span id=\"Gercek_Hayattan_Kucuk_Bir_Senaryo\">Ger\u00e7ek Hayattan K\u00fc\u00e7\u00fck Bir Senaryo<\/span><\/h2>\n<p>Bir m\u00fc\u015fteride, Laravel tabanl\u0131 bir \u00f6deme ak\u0131\u015f\u0131 a\u011f\u0131rla\u015fm\u0131\u015ft\u0131. Grafiklerde d\u00fczensiz s\u0131\u00e7ramalar, loglarda \u201cconnect timeout\u201d mesajlar\u0131\u2026 \u0130lk bak\u0131\u015fta veritaban\u0131 yava\u015f san\u0131l\u0131yor. Oysa sorun, OS katman\u0131nda t\u0131kanan k\u0131sa \u00f6m\u00fcrl\u00fc ba\u011flant\u0131lar ve yetersiz backlog. \u00d6nce sysctl taraf\u0131nda kabul kuyruklar\u0131n\u0131 geni\u015flettik, SYN cookies\u2019i teyit ettik. Sonra Nginx keep-alive ayarlar\u0131n\u0131 uygulaman\u0131n ritmine uydurduk. Bir sonraki turda, ProxySQL ile k\u00fc\u00e7\u00fck bir havuzlama yapt\u0131k. Sonu\u00e7, ayn\u0131 kod ve ayn\u0131 donan\u0131mla daha sakin bir ak\u0131\u015f. \u0130\u015fte bu y\u00fczden diyorum; kernel\u2019i dinlerseniz, \u00e7o\u011fu zaman sorun \u00e7\u00f6z\u00fcl\u00fcyor.<\/p>\n<p>Benzer bir hikaye WordPress\u2019te. Kampanya g\u00fcn\u00fc, CDN arkas\u0131nda olsak da backend bir s\u00fcre sonra nefes nefese kal\u0131yordu. Sorun, el s\u0131k\u0131\u015fma s\u0131ras\u0131nda olu\u015fan birikme ve UDP taraf\u0131nda log\/metrik kuyru\u011funun daralmas\u0131. UDP buffer tavanlar\u0131n\u0131 y\u00fckselttik, TLS taraf\u0131nda ikili sertifika yakla\u015f\u0131m\u0131yla el s\u0131k\u0131\u015fmalar\u0131 yumu\u015fatt\u0131k, ve \u00f6n tarafta L4\/L7 y\u00fck dengelemede health check\u2019leri daha ak\u0131ll\u0131 hale getirdik. Dalgalar k\u0131y\u0131ya \u00e7arpt\u0131 ama bina sa\u011flam kald\u0131.<\/p>\n<h2 id=\"section-9\"><span id=\"Kademeli_Yayin_ve_Geri_Donus_Plani\">Kademeli Yay\u0131n ve Geri D\u00f6n\u00fc\u015f Plan\u0131<\/span><\/h2>\n<p>\u0130\u015fletim sistemi ayarlar\u0131, canl\u0131 ortamda \u201chemen ve b\u00fcy\u00fck\u201d de\u011fi\u015fiklikleri sevmez. K\u00fc\u00e7\u00fck art\u0131\u015flar, net \u00f6l\u00e7\u00fcmler, gerekti\u011finde ad\u0131m geri\u2026 Bu \u00fc\u00e7l\u00fc rahat ettirir. E\u011fer birden fazla node varsa, ayarlar\u0131 tek tek, farkl\u0131 zamanlarda uygulay\u0131n. Beklenmedik yan etki g\u00f6r\u00fcrseniz, h\u0131zl\u0131 geri d\u00f6n\u00fc\u015f i\u00e7in orijinal dosyay\u0131 kenarda tutun. Bir de unutmadan: container\u2019l\u0131 ortamlarda host kernel ayarlar\u0131 ile pod\/container limitleri birlikte d\u00fc\u015f\u00fcn\u00fclmeli. Sadece sysctl ile de\u011fil, servislerin kendi socket ayarlar\u0131yla da uyum \u015fart.<\/p>\n<p>Uygulama katman\u0131nda kuyruk kullan\u0131yorsan\u0131z, i\u015fleyicilerin ba\u011flant\u0131 davran\u0131\u015f\u0131n\u0131 da g\u00f6zleyin. \u00d6rne\u011fin yo\u011fun job\u2019lar k\u0131sa \u00f6m\u00fcrl\u00fc ama \u00e7ok say\u0131da d\u0131\u015f istek yap\u0131yorsa, keep-alive ve havuzlama ile OS taraf\u0131ndaki y\u00fck\u00fc ciddi azaltabilirsiniz. Bu sadece performans de\u011fil, hata oranlar\u0131n\u0131 da etkiliyor.<\/p>\n<h2 id=\"section-10\"><span id=\"Son_Birkac_Pratik_Dokunus\">Son Birka\u00e7 Pratik Dokunu\u015f<\/span><\/h2>\n<p>G\u00f6zleme yard\u0131mc\u0131 birka\u00e7 komut: <code>ss -s<\/code> ba\u011flant\u0131 durum \u00f6zetini verir, <code>ss -tan<\/code> ile anl\u0131k yo\u011funlu\u011fu g\u00f6r\u00fcrs\u00fcn\u00fcz. <code>netstat -s<\/code> TCP istatistiklerini serer; retransmission art\u0131yorsa bir yerde t\u0131kanma ya da paket kayb\u0131 olabilir. <code>dmesg<\/code> ve sistem log\u2019lar\u0131, buffer bask\u0131s\u0131n\u0131 ele verir. <code>htop<\/code> ile softirq bask\u0131s\u0131 hissediyorsan\u0131z, NIC s\u00fcr\u00fcc\u00fcs\u00fc ve IRQ da\u011f\u0131l\u0131m\u0131n\u0131 da kontrol etmek gerekebilir; ama bu konu ayr\u0131 bir yaz\u0131 ister.<\/p>\n<p>Edge ya da proxy katman\u0131 kullan\u0131yorsan\u0131z, backend\u2019le tutarl\u0131 timeout\u2019lar kritik. Uygulama 60 saniyede pes ederken CDN 15 saniyede b\u0131rak\u0131yorsa, kullan\u0131c\u0131 deneyimini CDN belirler. Bu senaryolarda, daha \u00f6nce payla\u015ft\u0131\u011f\u0131m <a href=\"https:\/\/www.dchost.com\/blog\/haproxy-ile-l4-l7-yuk-dengeleme-nasil-sifir-kesinti-sunar-health-check-sticky-sessions-ve-tls-passthroughu-sade-sade-konusalim\/\">HAProxy sa\u011fl\u0131k kontrol\u00fc ve timeout dengesini<\/a> tekrar hat\u0131rlatmak isterim. Ayn\u0131 \u015fekilde, uzun soluklu oturumlarda <a href=\"https:\/\/www.dchost.com\/blog\/cloudflare-ile-websocket-ve-grpc-yayini-nasil-hep-canli-kalir-nginx-timeout-keep%EF%BF%BDalive-ve-kesintisiz-dagitimin-sirlari\/\">keep-alive ve ba\u011flant\u0131 \u00f6mr\u00fc<\/a> \u00fczerine notlar orada.<\/p>\n<p>Trafik kampanyalar\u0131nda TLS yenileme\/sertifika limitleri gibi dolayl\u0131 noktalar bile ak\u0131\u015f\u0131 etkileyebiliyor. Hatta bazen s\u0131rf bu y\u00fczden kullan\u0131c\u0131lar yeniden deniyor, dalga b\u00fcy\u00fcyor. B\u00f6yle senaryolarda, altyap\u0131n\u0131n di\u011fer ta\u015flar\u0131n\u0131 da d\u00fc\u015f\u00fcnmek g\u00fczel olur. Her \u015fey birbirini etkiliyor.<\/p>\n<h2 id=\"section-11\"><span id=\"Kapanis_Kerneli_Dinlemek_Trafigi_Sakinlestirmek\">Kapan\u0131\u015f: Kernel\u2019i Dinlemek, Trafi\u011fi Sakinle\u015ftirmek<\/span><\/h2>\n<p>Toparlayal\u0131m. WordPress ya da Laravel uygulaman\u0131z nefes nefese kald\u0131\u011f\u0131nda, \u00e7o\u011fu zaman ilk akla gelen kod ve veritaban\u0131 oluyor. Oysa bir ad\u0131m altta, Linux\u2019un TCP\/UDP ayarlar\u0131 trafik dalgalar\u0131n\u0131 yumu\u015fatan gizli kahraman. <strong>Backlog<\/strong>\u2019u mant\u0131kl\u0131 seviyede tutmak, <strong>keep-alive<\/strong> ile \u201ctekrar kap\u0131dan ge\u00e7me\u201d maliyetini azaltmak, <strong>ephemeral port aral\u0131\u011f\u0131n\u0131<\/strong> geni\u015fletmek ve <strong>UDP buffer<\/strong>\u2019lar\u0131n\u0131 makul y\u00fckseltmek fark yarat\u0131yor. \u0130\u015f b\u00fcy\u00fcy\u00fcp sald\u0131r\u0131 kokusu ta\u015f\u0131yorsa, <strong>SYN cookies<\/strong> ve gerekti\u011finde <strong>synproxy<\/strong> devreye giriyor; <a href=\"https:\/\/wiki.nftables.org\/wiki-nftables\/index.php\/SYNPROXY\" rel=\"nofollow noopener\" target=\"_blank\">nftables synproxy notlar\u0131na<\/a> g\u00f6z atmak iyi fikir.<\/p>\n<p>Pratik tavsiye: K\u00fc\u00e7\u00fck oyna, \u00e7ok \u00f6l\u00e7, h\u0131zl\u0131 geri d\u00f6n. Ayar dosyan\u0131 versiyonla, her de\u011fi\u015fikli\u011fi not d\u00fc\u015f. Dalgalar geldi\u011finde, \u00f6nce kap\u0131daki kuyruklar\u0131 ve el s\u0131k\u0131\u015fma davran\u0131\u015f\u0131n\u0131 kontrol et. Ard\u0131ndan uygulama ve veritaban\u0131 katman\u0131na bak. Ve e\u011fer veritaban\u0131 ba\u011flant\u0131lar\u0131nda esneklik istiyorsan, <a href=\"https:\/\/www.dchost.com\/blog\/proxysql-ile-mysql-read-write-split-ve-baglanti-havuzu-woocommerce-laravel-icin-gercek-dunya-rehberi\/\">ba\u011flant\u0131 havuzu ile okuma-yazma ayr\u0131m\u0131<\/a> gibi dokunu\u015flarla i\u015fi daha da konforlu hale getirebilirsin.<\/p>\n<p>Umar\u0131m bu yaz\u0131, trafik y\u00fckseldi\u011finde nereden ba\u015flayaca\u011f\u0131n\u0131za dair sakin bir yol haritas\u0131 sunmu\u015ftur. Kafan\u0131za tak\u0131lan bir ayar olursa, k\u00fc\u00e7\u00fck bir test ortam\u0131nda deneyip sonu\u00e7lar\u0131 birlikte yorumlamak her zaman m\u00fcmk\u00fcn. Bir dahaki yaz\u0131da g\u00f6r\u00fc\u015fmek \u00fczere; log\u2019lar\u0131n\u0131z sakin, ba\u011flant\u0131lar\u0131n\u0131z sa\u011fl\u0131kl\u0131 olsun.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u0130&ccedil;indekiler1 Ofiste Bir Trafik Dalgas\u0131 ve Linux\u2019un Derin Nefesi2 Trafik Artt\u0131\u011f\u0131nda Kernel Ne Hisseder?3 sysctl ile TCP: Uygulamay\u0131 Bo\u011fmadan Ak\u0131\u015f\u0131 A\u00e7mak3.1 Backlog ve s\u0131rt \u00e7antas\u0131 metaforu3.2 TIME_WAIT, keep-alive ve tekrar kap\u0131dan ge\u00e7me masraf\u01313.3 Ephemeral port aral\u0131\u011f\u0131 ve t\u00fcnelin ferahlamas\u01313.4 Makul bir ba\u015flang\u0131\u00e7 dosyas\u01313.5 El s\u0131k\u0131\u015fmay\u0131 ucuzlatmak i\u00e7in k\u00fc\u00e7\u00fck bir not4 UDP Buffer\u2019lar\u0131: DNS, Log ve [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1783,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-1782","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=1782"}],"version-history":[{"count":0,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1782\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/1783"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=1782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=1782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=1782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}