<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nginx &#8211; Saviorhost İnternet Hizmetleri</title>
	<atom:link href="https://saviorhost.com/blog/category/nginx/feed/" rel="self" type="application/rss+xml" />
	<link>https://saviorhost.com/blog</link>
	<description>Web projenizi kurtaran hosting sağlayıcısı: Savior Host!</description>
	<lastBuildDate>Wed, 15 Apr 2026 07:23:51 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://saviorhost.com/blog/wp-content/uploads/2018/07/cropped-favicon-150x150.png</url>
	<title>Nginx &#8211; Saviorhost İnternet Hizmetleri</title>
	<link>https://saviorhost.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>500 Internal Server Error: Neden Olur, Nasıl Çözülür? (cPanel, WordPress, Nginx/Apache Rehberi)</title>
		<link>https://saviorhost.com/blog/500-internal-server-error-cozum/</link>
					<comments>https://saviorhost.com/blog/500-internal-server-error-cozum/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Wed, 15 Apr 2026 07:19:43 +0000</pubDate>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Centos Web Panel]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[WHM/Cpanel]]></category>
		<guid isPermaLink="false">https://saviorhost.com/blog/?p=2078</guid>

					<description><![CDATA[Sitenizde aniden beliren &#8220;500 Internal Server Error&#8221; hatası, tarayıcınızın veya internetinizin değil; doğrudan sunucunun bir şeyleri işleyemediğinin çığlığıdır. Hatalı .htaccess...]]></description>
										<content:encoded><![CDATA[
<div class="container">
<div id="model-response-message-contentr_4c0aec177520981a" class="markdown markdown-main-panel enable-updated-hr-color" dir="ltr" aria-live="polite" aria-busy="false">
<p class="wp-block-paragraph" data-path-to-node="7">Sitenizde aniden beliren &#8220;500 Internal Server Error&#8221; hatası, tarayıcınızın veya internetinizin değil; doğrudan sunucunun bir şeyleri işleyemediğinin çığlığıdır. Hatalı <code data-path-to-node="7" data-index-in-node="174">.htaccess</code> kuralları, yanlış dosya izinleri veya yetersiz PHP bellek limitleri en yaygın yazılımsal nedenlerdir. Ancak sorun kodlarınızda değilse, sunucunuzun işlemci (CPU) darboğazına girmiş veya PHP Worker limitlerini doldurmuş olma ihtimali çok yüksektir. Bu devasa rehberde, 500 hatasını sıradan bir kullanıcı gibi değil, bir Sistem Yöneticisi (SysAdmin) gibi nasıl teşhis edip çözeceğinizi adım adım anlatıyoruz.</p>
<hr data-path-to-node="8" />
<p data-path-to-node="9">Web sitenizde gezinirken, yeni bir içerik yayımlamaya çalışırken veya en kötüsü kritik bir e-ticaret (WooCommerce) ödemesi sırasında aniden karşınıza çıkan bembeyaz bir sayfadaki <b data-path-to-node="9" data-index-in-node="179">&#8220;500 Internal Server Error&#8221;</b> yazısı, bir webmaster&#8217;ın en büyük kabusudur. E-ticaret siteleri için bu hata sadece teknik bir sorun değil, doğrudan ciro ve itibar kaybıdır.</p>
<p data-path-to-node="10">Çoğu kaynak bu hatayı çözmek için size &#8220;Tüm eklentilerinizi kapatın, temanızı değiştirin ve tek tek açarak test edin&#8221; gibi saatler sürecek, amatörce tavsiyeler verir. Oysa bir sunucu mimarisini anlayan teknik bir uzman gibi yaklaşırsanız, sorunun kaynağını dakikalar içinde bulabilirsiniz. SaviorHost mühendislik ekibi olarak, 500 hatasının arka planındaki mimariyi, gizli kalmış tetikleyicileri ve kesin çözüm yollarını masaya yatırıyoruz.</p>
<h2 data-path-to-node="11" id="1-karanlikta-el-yordamiyla-aramayi-birakin-hata-loglarini-error-logs-okuyun">1. Karanlıkta El Yordamıyla Aramayı Bırakın: Hata Loglarını (Error Logs) Okuyun</h2>
<p data-path-to-node="12">500 hatası aslında &#8220;Genel (Catch-all)&#8221; bir koddur. Sunucu, güvenlik nedeniyle hatanın gerçek nedenini (örneğin hangi veritabanı tablosunun çöktüğünü) doğrudan ekrana yazdırarak ziyaretçiye (ve olası saldırganlara) göstermez. Gerçek nedeni bulmanın tek yolu <b data-path-to-node="12" data-index-in-node="257">Error Logs (Hata Günlükleri)</b> dosyasına bakmaktır.</p>
<ul data-path-to-node="13">
<li>
<p data-path-to-node="13,0,0"><b data-path-to-node="13,0,0" data-index-in-node="0">Sunucu Panelinden Kontrol:</b> Kontrol panelinizden (KeyHelp, cPanel, Plesk) &#8220;Error Log&#8221; veya &#8220;Hata Kayıtları&#8221; bölümüne girin. Burada Apache veya Nginx&#8217;in tuttuğu son 300 hatayı saniyesi saniyesine görebilirsiniz.</p>
</li>
<li>
<p data-path-to-node="13,1,0"><b data-path-to-node="13,1,0" data-index-in-node="0">WordPress Debug Modu:</b> Eğer WordPress kullanıyorsanız, FTP üzerinden <code data-path-to-node="13,1,0" data-index-in-node="68">wp-config.php</code> dosyasına girip aşağıdaki satırları bularak &#8220;true&#8221; olarak değiştirin (veya yoksa ekleyin):</p>
<div class="code-block ng-tns-c145617397-1036 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwi-srHe-uyTAxUAAAAAHQAAAAAQ4g8">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c145617397-1036 ng-star-inserted"><span class="ng-tns-c145617397-1036">PHP</span>
<div class="buttons ng-tns-c145617397-1036 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c145617397-1036">
<div class="animated-opacity ng-tns-c145617397-1036">
<pre class="ng-tns-c145617397-1036"><code class="code-container formatted ng-tns-c145617397-1036" role="text" data-test-id="code-content">define(<span class="hljs-string">'WP_DEBUG'</span>, <span class="hljs-literal">true</span>);
define(<span class="hljs-string">'WP_DEBUG_LOG'</span>, <span class="hljs-literal">true</span>);
define(<span class="hljs-string">'WP_DEBUG_DISPLAY'</span>, <span class="hljs-literal">false</span>);
</code></pre>
</div>
</div>
</div>
<p data-path-to-node="13,1,2">Bu işlemden sonra, <code data-path-to-node="13,1,2" data-index-in-node="19">/wp-content/</code> klasörünüzün içinde <code data-path-to-node="13,1,2" data-index-in-node="52">debug.log</code> adında bir dosya oluşacaktır. Bu dosyayı açtığınızda hatanın hangi eklentinin hangi satırından koptuğunu net bir şekilde görebilirsiniz. Sorunu çözdükten sonra bu değerleri tekrar <code data-path-to-node="13,1,2" data-index-in-node="242">false</code> yapmayı unutmayın.</p>
</li>
</ul>
<h2 data-path-to-node="14" id="2-en-yaygin-fail-bozuk-veya-sismis-htaccess-dosyasi">2. En Yaygın Fail: Bozuk veya Şişmiş <code data-path-to-node="14" data-index-in-node="37">.htaccess</code> Dosyası</h2>
<p data-path-to-node="15">500 hatalarının %70&#8217;inden fazlası Apache veya LiteSpeed sunucularında yanlış yapılandırılmış bir <code data-path-to-node="15" data-index-in-node="97">.htaccess</code> dosyasından kaynaklanır. Yeni bir SEO eklentisi kurduğunuzda, önbellek (Cache) temizliği yaptığınızda veya SSL (HTTP&#8217;den HTTPS&#8217;ye) yönlendirmesi eklediğinizde, bu dosyaya hatalı bir noktalı virgül (;) veya geçersiz bir <i data-path-to-node="15" data-index-in-node="326">RewriteRule</i> eklenmiş olabilir.</p>
<p data-path-to-node="16"><b data-path-to-node="16" data-index-in-node="0">Kesin Çözüm Yöntemi:</b></p>
<ol start="1" data-path-to-node="17">
<li>
<p data-path-to-node="17,0,0">FTP veya Dosya Yöneticisi üzerinden sitenizin kök dizinine (<code data-path-to-node="17,0,0" data-index-in-node="60">public_html</code> veya <code data-path-to-node="17,0,0" data-index-in-node="77">httpdocs</code>) bağlanın.</p>
</li>
<li>
<p data-path-to-node="17,1,0">Gizli dosyaları göster seçeneğinin açık olduğundan emin olun ve <code data-path-to-node="17,1,0" data-index-in-node="64">.htaccess</code> dosyasını bulun.</p>
</li>
<li>
<p data-path-to-node="17,2,0">Dosyanın adını <code data-path-to-node="17,2,0" data-index-in-node="15">.htaccess_yedek</code> olarak değiştirerek devre dışı bırakın.</p>
</li>
<li>
<p data-path-to-node="17,3,0">Sitenizi yenileyin. Eğer siteniz sorunsuz açılıyorsa (alt sayfalar 404 verebilir, normaldir), sorun kesinlikle bu dosyadadır.</p>
</li>
<li>
<p data-path-to-node="17,4,0">WordPress panelinize girin, <b data-path-to-node="17,4,0" data-index-in-node="28">Ayarlar &gt; Kalıcı Bağlantılar (Permalinks)</b> sekmesine gidin ve hiçbir değişiklik yapmadan doğrudan &#8220;Değişiklikleri Kaydet&#8221; butonuna basın. WordPress sizin için tertemiz, hatasız ve orijinal bir <code data-path-to-node="17,4,0" data-index-in-node="220">.htaccess</code> dosyası üretecektir.</p>
</li>
</ol>
<h2 data-path-to-node="18" id="3-yanlis-dosya-izinleri-permissions-ve-sahiplik-ownership-chown-krizleri">3. Yanlış Dosya İzinleri (Permissions) ve Sahiplik (Ownership/Chown) Krizleri</h2>
<p data-path-to-node="19">Linux işletim sistemlerinde güvenlik ve izolasyon en üst düzeydedir. Eğer bir PHP dosyasının veya klasörün okuma/yazma izni yanlış ayarlanmışsa (özellikle 777 gibi tehlikeli izinler verilmişse), sunucunun güvenlik mekanizmaları (suPHP veya PHP-FPM yapılandırmaları) bu dosyayı çalıştırmayı reddeder ve anında 500 hatası fırlatır.</p>
<p data-path-to-node="20"><b data-path-to-node="20" data-index-in-node="0">İdeal Linux İzin Yapılandırması Şöyle Olmalıdır:</b></p>
<ul data-path-to-node="21">
<li>
<p data-path-to-node="21,0,0">Tüm klasörler (Directories) <b data-path-to-node="21,0,0" data-index-in-node="28">755</b> yetkisine sahip olmalıdır.</p>
</li>
<li>
<p data-path-to-node="21,1,0">Tüm dosyalar (Files) <b data-path-to-node="21,1,0" data-index-in-node="21">644</b> yetkisine sahip olmalıdır.</p>
</li>
<li>
<p data-path-to-node="21,2,0"><code data-path-to-node="21,2,0" data-index-in-node="0">wp-config.php</code> gibi kritik veritabanı şifrelerini barındıran dosyalar ekstra güvenlik için <b data-path-to-node="21,2,0" data-index-in-node="90">440</b> veya <b data-path-to-node="21,2,0" data-index-in-node="99">400</b> yapılabilir.</p>
</li>
</ul>
<p data-path-to-node="22"><b data-path-to-node="22" data-index-in-node="0">Sahiplik (Ownership) Sorunu:</b> Bazen dosyaların izinleri doğru olsa bile, dosyayı oluşturan kullanıcı (Owner) yanlıştır. Dosyalar <code data-path-to-node="22" data-index-in-node="128">root</code> kullanıcısına aitse ve web sunucusu (örneğin <code data-path-to-node="22" data-index-in-node="178">www-data</code> veya kendi kullanıcı adınız) bunu okumaya çalışırsa 500 hatası alırsınız. Bu durumu hosting firmanızın destek ekibine &#8220;Chown (Sahiplik) yetkilerimi sıfırlayabilir misiniz?&#8221; diyerek saniyeler içinde çözdürebilirsiniz.</p>
<h2 data-path-to-node="23" id="4-php-memory-limit-bellek-yetersizligi-ve-max-execution-time-darbogazi">4. PHP Memory Limit (Bellek) Yetersizliği ve Max Execution Time Darboğazı</h2>
<p data-path-to-node="24">Ağır bir e-ticaret siteniz, çok fazla varyasyona sahip ürünleriniz veya Elementor/WPBakery gibi çok kaynak tüketen sayfa yapılandırıcılarınız varsa, PHP&#8217;nin tek bir işlemi tamamlamak için ihtiyaç duyduğu RAM (Bellek) miktarı sunucunuzun size ayırdığı limiti aşabilir. Bu durumda PHP işlemi aniden çöker (<code data-path-to-node="24" data-index-in-node="304">Fatal Error: Allowed memory size exhausted</code>) ve ekrana 500 hatası yansır.</p>
<p data-path-to-node="25">Benzer şekilde, bir işlem çok uzun sürerse (örneğin XML ürün içe aktarma), <code data-path-to-node="25" data-index-in-node="75">max_execution_time</code> (maksimum çalışma süresi) sınırı dolar ve işlem yarıda kesilir.</p>
<p data-path-to-node="26"><b data-path-to-node="26" data-index-in-node="0">Nasıl Çözülür?</b> <code data-path-to-node="26" data-index-in-node="15">wp-config.php</code> dosyanıza şu satırları ekleyerek limitleri artırmayı deneyin:</p>
<div class="code-block ng-tns-c145617397-1037 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwi-srHe-uyTAxUAAAAAHQAAAAAQ4w8">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c145617397-1037 ng-star-inserted"><span class="ng-tns-c145617397-1037">PHP</span>
<div class="buttons ng-tns-c145617397-1037 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c145617397-1037">
<div class="animated-opacity ng-tns-c145617397-1037">
<pre class="ng-tns-c145617397-1037"><code class="code-container formatted ng-tns-c145617397-1037" role="text" data-test-id="code-content">define(<span class="hljs-string">'WP_MEMORY_LIMIT'</span>, <span class="hljs-string">'512M'</span>);
define(<span class="hljs-string">'WP_MAX_MEMORY_LIMIT'</span>, <span class="hljs-string">'1024M'</span>);
</code></pre>
</div>
</div>
</div>
<p data-path-to-node="28">Ayrıca <code data-path-to-node="28" data-index-in-node="7">.htaccess</code> dosyanıza veya kontrol panelinizdeki MultiPHP INI düzenleyicisine şu satırları ekleyebilirsiniz: <code data-path-to-node="28" data-index-in-node="114">php_value max_execution_time 300</code></p>
<p data-path-to-node="29"><i data-path-to-node="29" data-index-in-node="0">Önemli Not: Eğer bu kodları eklemenize rağmen hata devam ediyorsa, hosting firmanız arka planda (CloudLinux vb. üzerinden) donanımsal bir tavan limit koymuş ve sizin bunu aşmanıza izin vermiyor demektir.</i></p>
<h2 data-path-to-node="30" id="5-modsecurity-waf-yanlis-pozitif-engellemeleri">5. ModSecurity (WAF) Yanlış Pozitif Engellemeleri</h2>
<p data-path-to-node="31">Sunucularda sitenizi siber saldırılardan korumak için Web Application Firewall (WAF) veya ModSecurity adı verilen güvenlik duvarları bulunur. Bazen tamamen masum bir işlem; örneğin uzun bir makale kaydetmek, karmaşık bir SQL sorgusu çalıştırmak veya tema ayarlarında çok fazla parametre kaydetmek, ModSecurity tarafından &#8220;SQL Injection Saldırısı&#8221; olarak algılanır. Sistem anında isteği keser ve sizi 500 veya 403 hatasıyla cezalandırır.</p>
<p data-path-to-node="32">Eğer belirli bir sayfayı kaydederken hep aynı hatayı alıyorsanız, kontrol panelinizden geçici olarak ModSecurity&#8217;i kapatıp işlemi tekrar deneyin. İşlem başarılı olursa, sorunun bir &#8220;False Positive&#8221; (Yanlış Alarm) olduğunu anlarsınız.</p>
<h2 data-path-to-node="33" id="6-aci-gercek-sorun-kodlarinizda-degil-sunucunuzun-gucundedir">6. Acı Gerçek: Sorun Kodlarınızda Değil, Sunucunuzun Gücündedir!</h2>
<p data-path-to-node="34">Yazılımsal tüm testleri yaptınız, <code data-path-to-node="34" data-index-in-node="34">.htaccess</code> tertemiz, eklentiler güncel, RAM limitleri en üstte ama siteniz biraz trafik aldığında veya bir kampanya döneminde hala 500 (veya 503/508) hataları veriyorsa, sorun arka plandaki hantal sunucu mimarisindedir.</p>
<p data-path-to-node="35">Standart hosting altyapılarında şu darboğazlar yaşanır:</p>
<ul data-path-to-node="36">
<li>
<p data-path-to-node="36,0,0"><b data-path-to-node="36,0,0" data-index-in-node="0">PHP Worker Yetersizliği:</b> Ucuz hostinglerde size genellikle sadece 10-20 arası PHP işçisi (Worker) tahsis edilir. Anlık 30 kişi sitenize girip sepete ürün eklediğinde veya arama yaptığında, PHP kuyruğu tıkanır. İşçiler yetişemediği için sistem yeni gelen müşterilere 500/503 hatası gösterir.</p>
</li>
<li>
<p data-path-to-node="36,1,0"><b data-path-to-node="36,1,0" data-index-in-node="0">Hantal Panellerin RAM Sömürüsü:</b> Arka planda sunucu kaynaklarını ağırlaştıran paneller (eski nesil CWP veya cPanel yapıları), sitenize kalması gereken RAM&#8217;i kendi servislerini ayakta tutmak için kullanır.</p>
</li>
</ul>
<h3 data-path-to-node="37" id="saviorhost-ile-darbogazlara-veda-edin">SaviorHost ile Darboğazlara Veda Edin</h3>
<p data-path-to-node="38">Biz SaviorHost olarak 500 hatalarını eklenti kapatarak veya ziyaretçi sayınızı kısıtlayarak değil, <b data-path-to-node="38" data-index-in-node="99">saf mühendislik ve ham donanım gücüyle</b> çözüyoruz:</p>
<ul data-path-to-node="39">
<li>
<p data-path-to-node="39,0,0"><b data-path-to-node="39,0,0" data-index-in-node="0">AMD Ryzen™ 9 7900 İşlemci Gücü:</b> Eski nesil standart işlemcilerin kuyrukta beklettiği PHP sorgularını, inanılmaz tek çekirdek (IPC) gücü sayesinde milisaniyeler içinde işliyoruz.</p>
</li>
<li>
<p data-path-to-node="39,1,0"><b data-path-to-node="39,1,0" data-index-in-node="0">50 PHP Worker Ayrıcalığı:</b> Yoğun trafikli siteleriniz ve e-ticaret operasyonlarınız için rakiplerin sunmadığı düzeyde geniş bir PHP işlemci havuzu sağlıyoruz. Siteniz yoğun anlarda bile nefes alıyor.</p>
</li>
<li>
<p data-path-to-node="39,2,0"><b data-path-to-node="39,2,0" data-index-in-node="0">KeyHelp ile Özgür Bırakılan RAM:</b> Sunucu kaynaklarını sömürmeyen Alman mimarisi KeyHelp paneli sayesinde, tüm RAM kapasitesi ve <b data-path-to-node="39,2,0" data-index-in-node="127">7GB/s NVMe</b> okuma hızı doğrudan web sitenize tahsis ediliyor.</p>
</li>
</ul>
<p data-path-to-node="40">Sürekli hata logları okumaktan, &#8220;Sitem neden çöktü?&#8221; diye düşünmekten ve yavaşlık yüzünden müşteri kaybetmekten sıkıldıysanız; gerçek performansla tanışmanın vakti gelmiştir. Sorunsuz altyapımız için <a class="ng-star-inserted" href="https://www.google.com/search?q=%23" target="_blank" rel="noopener nofollow" data-hveid="0" data-ved="0CAAQ_4QMahgKEwi-srHe-uyTAxUAAAAAHQAAAAAQ5A8">Premium Linux Web Hosting</a> paketlerimizi <b data-path-to-node="40" data-index-in-node="240">15 Gün İade Garantisiyle</b> hemen inceleyin, farkı kendi gözlerinizle görün.</p>
</div>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/500-internal-server-error-cozum/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Web Sitelerinde Spam Trafiğini Engelleme (2025 Rehberi)</title>
		<link>https://saviorhost.com/blog/web-sitelerinde-spam-trafigini-engelleme-2025-rehberi/</link>
					<comments>https://saviorhost.com/blog/web-sitelerinde-spam-trafigini-engelleme-2025-rehberi/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Wed, 22 Oct 2025 13:31:44 +0000</pubDate>
				<category><![CDATA[Güvenlik]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Nginx]]></category>
		<guid isPermaLink="false">https://saviorhost.com/blog/?p=2156</guid>

					<description><![CDATA[Spam ve bot trafiğini WAF/CRS, Nginx rate limiting, Turnstile/reCAPTCHA, honeypot ve GA4 ölçüm temizliğiyle azaltın. Uygulanabilir kural setleri ve kontrol listesi içerir.]]></description>
										<content:encoded><![CDATA[<h2 data-start="364" data-end="413" id="neden-bot-%e2%89%a0-tek-tip-tehdit-modelini-oturt">Neden “bot” ≠ tek tip? (Tehdit modelini oturt)</h2>
<p data-start="414" data-end="845">Spam trafiği; <strong data-start="428" data-end="516">credential stuffing, carding, scraping, brute force, form spam, API kötüye kullanımı</strong> gibi farklı otomasyon davranışlarından oluşur. OWASP’ın <strong data-start="573" data-end="620">Automated Threats to Web Applications (OAT)</strong> sınıflandırması, hangi uç noktalar için hangi saldırıların tipik olduğuna dair ortak bir dil sağlar; savunmayı tek bir CAPTCHA’ya indirgemek yerine tehdit odaklı düşünmeyi kolaylaştırır. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://owasp.org/www-project-automated-threats-to-web-applications/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">owasp.org</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<h2 data-start="847" data-end="888" id="ana-savunma-katmanlari-ozet-strateji">Ana savunma katmanları (özet strateji)</h2>
<ol data-start="889" data-end="2691">
<li data-start="889" data-end="1130">
<p data-start="892" data-end="1130"><strong data-start="892" data-end="916">WAF + kural setleri:</strong> ModSecurity ile <strong data-start="933" data-end="962">OWASP Core Rule Set (CRS)</strong> başlangıç bariyeri sağlar; SQLi/XSS gibi klasik istismarlara ek olarak brute force ve hız sınırlamaya yardımcı kurallar içerir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://owasp.org/www-project-modsecurity-core-rule-set/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">owasp.org</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
<li data-start="1131" data-end="1382">
<p data-start="1134" data-end="1382"><strong data-start="1134" data-end="1184">Oran sınırlama (rate limit) / bağlantı kotası:</strong> Nginx’in <code data-start="1194" data-end="1205">limit_req</code> ve <code data-start="1209" data-end="1221">limit_conn</code> modülleri IP ya da özel anahtarlar (örn. IP+username) üzerinden istek hızını düşürür; leaky-bucket algoritması kullanır. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://nginx.org/en/docs/http/ngx_http_limit_req_module.html?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">nginx.org</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
<li data-start="1383" data-end="1679">
<p data-start="1386" data-end="1679"><strong data-start="1386" data-end="1412">Risk skorlu doğrulama:</strong> <strong data-start="1413" data-end="1437">Cloudflare Turnstile</strong> gibi “sessiz” tarayıcı sinyali tabanlı çözümler; düşük güven hâlinde hafif challenge göstererek sürtünmeyi azaltır. Google <strong data-start="1561" data-end="1587">reCAPTCHA (Enterprise)</strong>, OAT kategorilerine göre akış bazlı öneriler sunar. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developers.cloudflare.com/turnstile/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Cloudflare Docs</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+2</span></span><span class="flex h-4 w-full items-center justify-between absolute"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Cloudflare Docs</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+2</span></span></span></a></span></span></p>
</li>
<li data-start="1680" data-end="1960">
<p data-start="1683" data-end="1960"><strong data-start="1683" data-end="1713">Honeypot/decoy taktikleri:</strong> Görünmeyen form alanları, sahte endpoint’ler ve (Cloudflare tarafında) <strong data-start="1785" data-end="1801">AI Labyrinth</strong> gibi “yönlendirip oyalayan” çözümlemeler, robots.txt’ye uymayan yeni nesil tarayıcılara karşı etkili bir ek katmandır. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://blog.cloudflare.com/ai-labyrinth/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">The Cloudflare Blog</span></span></span></a></span></span></p>
</li>
<li data-start="1961" data-end="2298">
<p data-start="1964" data-end="2298"><strong data-start="1964" data-end="2012">Scraper ekosistemi ve robots.txt gerçekliği:</strong> 2024–2025’te yayıncılar ve altyapı sağlayıcıları, <strong data-start="2063" data-end="2090">robots.txt’yi yok sayan</strong> ve kimliğini gizleyen AI tarayıcılarına karşı (örn. varsayılan engelleme, “Pay Per Crawl” gibi) daha agresif önlemler duyurdu; robots.txt <strong data-start="2229" data-end="2257">tek başına yeterli değil</strong>. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.theverge.com/news/695501/cloudflare-block-ai-crawlers-default?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">The Verge</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+2</span></span><span class="flex h-4 w-full items-center justify-between absolute"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Reuters</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+2</span></span></span></a></span></span></p>
</li>
<li data-start="2299" data-end="2484">
<p data-start="2302" data-end="2484"><strong data-start="2302" data-end="2322">Ölçüm temizliği:</strong> Başarıyı ölçmek için GA4’te <strong data-start="2351" data-end="2363">internal</strong> ve <strong data-start="2367" data-end="2380">developer</strong> trafiğini filtrele; aksi hâlde bot azaltma etkisini göremezsin. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.google.com/analytics/answer/10104470?hl=en&amp;utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Google Yardım</span></span></span></a></span></span></p>
</li>
<li data-start="2485" data-end="2691">
<p data-start="2488" data-end="2691"><strong data-start="2488" data-end="2519">API’lere özel sıkılaştırma:</strong> 2024’te web saldırıları %33 artarken API’ler birincil hedef hâline geldi; rate limit + kimlik doğrulama + davranışsal sinyaller şart. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://vmblog.com/archive/2025/04/28/akamai-research-web-attacks-up-33-apis-emerge-as-primary-targets.aspx?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">vmblog.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
</ol>
<hr data-start="2693" data-end="2696" />
<h2 data-start="2698" data-end="2748" id="uygulanabilir-kontrol-listesi-hizli-baslangic">Uygulanabilir kontrol listesi (Hızlı başlangıç)</h2>
<ul data-start="2749" data-end="4021">
<li data-start="2749" data-end="2939">
<p data-start="2751" data-end="2939"><strong data-start="2751" data-end="2775">Kritik uçları çıkar:</strong> <code data-start="2776" data-end="2784">/login</code>, <code data-start="2786" data-end="2795">/signup</code>, ödeme/form akışları, <code data-start="2818" data-end="2827">/search</code>, ürün beslemeleri ve API uçları; her birini OAT kategorisiyle eşleştir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://owasp.org/www-project-automated-threats-to-web-applications/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">owasp.org</span></span></span></a></span></span></p>
</li>
<li data-start="2940" data-end="3073">
<p data-start="2942" data-end="3073"><strong data-start="2942" data-end="2973">WAF/CRS’i aç ve tuning yap:</strong> Hatalı pozitifleri azaltmak için istisna kuralları tanımla. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://coreruleset.org/docs/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">CRS Project</span></span></span></a></span></span></p>
</li>
<li data-start="3074" data-end="3197">
<p data-start="3076" data-end="3197"><strong data-start="3076" data-end="3093">Oran sınırla:</strong> Nginx ile IP ve akışa özgü anahtarlarla rate limiting uygula. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://nginx.org/en/docs/http/ngx_http_limit_req_module.html?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">nginx.org</span></span></span></a></span></span></p>
</li>
<li data-start="3198" data-end="3389">
<p data-start="3200" data-end="3389"><strong data-start="3200" data-end="3231">Riskli akışlarda challenge:</strong> Turnstile/reCAPTCHA’yı login, kayıt ve ödeme gibi <strong data-start="3282" data-end="3299">yüksek riskli</strong> akışlarda puan/karar mekanizmasıyla devreye al. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developers.cloudflare.com/turnstile/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Cloudflare Docs</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
<li data-start="3390" data-end="3520">
<p data-start="3392" data-end="3520"><strong data-start="3392" data-end="3416">Honeypot/decoy ekle:</strong> Form honeypot’ları + (Cloudflare kullanıyorsan) AI Labyrinth. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://blog.cloudflare.com/ai-labyrinth/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">The Cloudflare Blog</span></span></span></a></span></span></p>
</li>
<li data-start="3521" data-end="3640">
<p data-start="3523" data-end="3640"><strong data-start="3523" data-end="3544">Scraper yönetimi:</strong> ASN/ülke/UA sinyalleriyle kurallar, hız limitleri, JSON/Feed uçlarına Accept/Referer hijyeni.</p>
</li>
<li data-start="3641" data-end="3739">
<p data-start="3643" data-end="3739"><strong data-start="3643" data-end="3663">Ölçüm temizliği:</strong> GA4 iç/developer trafiğini dışla. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.google.com/analytics/answer/10104470?hl=en&amp;utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Google Yardım</span></span></span></a></span></span></p>
</li>
<li data-start="3740" data-end="3866">
<p data-start="3742" data-end="3866"><strong data-start="3742" data-end="3761">Sürekli gözlem:</strong> 429/5xx oranları, çerezsiz istek patlamaları, belirli ASN/ülkelerden ani sıçramalar için alarmlar kur.</p>
</li>
<li data-start="3867" data-end="4021">
<p data-start="3869" data-end="4021"><strong data-start="3869" data-end="3888">Trendleri izle:</strong> Akamai’nin yıllık/çeyreklik SOTI raporları API/bot eğilimlerini takip için iyi bir referans. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.akamai.com/resources/state-of-the-internet?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Akamai</span></span></span></a></span></span></p>
</li>
</ul>
<hr data-start="4023" data-end="4026" />
<h2 data-start="4028" data-end="4064" id="uygulama-taslagi-kopyala-uyarla">Uygulama Taslağı (kopyala–uyarla)</h2>
<h3 data-start="4066" data-end="4113" id="a-nginx-oran-sinirlama-ve-basit-isaretler">A) Nginx: Oran sınırlama ve basit işaretler</h3>
<p data-start="4114" data-end="4171"><strong data-start="4114" data-end="4171">Login akışı için IP + kullanıcı adı birleşik anahtar:</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-nginx"><span class="hljs-comment"># X-Real-IP varsa onu kullan</span><br />
<span class="hljs-attribute">map</span> <span class="hljs-variable">$http_x_real_ip</span> <span class="hljs-variable">$client_ip</span> { <span class="hljs-attribute">default</span> <span class="hljs-variable">$remote_addr</span>; }<br />
<span class="hljs-comment"># IP + username kombinasyonu (query/body'den 'username' geldiğini varsayalım)</span><br />
<span class="hljs-attribute">map</span> <span class="hljs-string">"<span class="hljs-variable">$client_ip</span></span>:<span class="hljs-variable">$arg_username</span>" <span class="hljs-variable">$login_key</span> { <span class="hljs-attribute">default</span> <span class="hljs-variable">$request_uri</span>; }</p>
<p><span class="hljs-comment"># Limit alanları</span><br />
<span class="hljs-attribute">limit_req_zone</span> <span class="hljs-variable">$client_ip</span> zone=perip:<span class="hljs-number">20m</span>   rate=10r/m;<br />
<span class="hljs-attribute">limit_req_zone</span> <span class="hljs-variable">$login_key</span> zone=peruser:<span class="hljs-number">20m</span> rate=5r/m;<br />
<span class="hljs-attribute">limit_conn_zone</span> <span class="hljs-variable">$client_ip</span> zone=ipconn:<span class="hljs-number">10m</span>;</p>
<p><span class="hljs-section">server</span> {<br />
  <span class="hljs-section">location</span> = /login {<br />
    <span class="hljs-attribute">limit_req</span> zone=perip burst=<span class="hljs-number">20</span> nodelay;<br />
    <span class="hljs-attribute">limit_req</span> zone=peruser burst=<span class="hljs-number">5</span>;<br />
    <span class="hljs-attribute">limit_conn</span> ipconn <span class="hljs-number">20</span>;</p>
<p>    <span class="hljs-comment"># Basit bot işaretleri (örnek)</span><br />
    <span class="hljs-attribute">if</span> (<span class="hljs-variable">$http_user_agent</span> <span class="hljs-regexp">~* "(curl|wget|bot|spider)")</span> { <span class="hljs-attribute">return</span> <span class="hljs-number">429</span>; }<br />
    <span class="hljs-attribute">proxy_pass</span> http://app_upstream;<br />
  }<br />
}<br />
</code></div>
</div>
<blockquote data-start="4873" data-end="5049">
<p data-start="4875" data-end="5049">Nginx’in <code data-start="4884" data-end="4895">limit_req</code> modülü leaky-bucket yöntemiyle çalışır; anahtar seçiminde IP’nin NAT arkasında paylaşılıyor olabileceğini unutma. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://nginx.org/en/docs/http/ngx_http_limit_req_module.html?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">nginx.org</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</blockquote>
<p data-start="5051" data-end="5092"><strong data-start="5051" data-end="5092">Form spam için honeypot + hız limiti:</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-nginx"><span class="hljs-comment"># /contact/submit için IP başına saatlik limit</span><br />
<span class="hljs-attribute">limit_req_zone</span> <span class="hljs-variable">$binary_remote_addr</span> zone=formip:<span class="hljs-number">10m</span> rate=30r/h;</p>
<p><span class="hljs-section">location</span> = /contact/submit {<br />
  <span class="hljs-attribute">limit_req</span> zone=formip burst=<span class="hljs-number">10</span>;<br />
  <span class="hljs-comment"># 'hp_field' honeypot alanı dolu geldiyse reddet</span><br />
  <span class="hljs-attribute">if</span> (<span class="hljs-variable">$arg_hp_field</span> != <span class="hljs-string">""</span>) { <span class="hljs-attribute">return</span> <span class="hljs-number">403</span>; }<br />
  <span class="hljs-attribute">proxy_pass</span> http://app_upstream;<br />
}<br />
</code></div>
</div>
<p data-start="5411" data-end="5470"><strong data-start="5411" data-end="5470">Sık kazınan uçlar (search/feed/sitemap) için dar boğaz:</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-nginx"><span class="hljs-attribute">limit_req_zone</span> <span class="hljs-variable">$binary_remote_addr</span> zone=scrape:<span class="hljs-number">20m</span> rate=1r/s;</p>
<p><span class="hljs-section">location</span> <span class="hljs-regexp">~ ^/(search|feed|sitemap\.xml|products\.json)$</span> {<br />
  <span class="hljs-attribute">limit_req</span> zone=scrape burst=<span class="hljs-number">10</span> nodelay;<br />
  <span class="hljs-attribute">proxy_pass</span> http://app_upstream;<br />
}<br />
</code></div>
</div>
<h3 data-start="5684" data-end="5741" id="b-cloudflare-turnstile-waf-mantigi-ai-labyrinth">B) Cloudflare: Turnstile + WAF mantığı + AI Labyrinth</h3>
<p data-start="5742" data-end="5776"><strong data-start="5742" data-end="5776">Turnstile entegrasyonu (özet):</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span></span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://challenges.cloudflare.com/turnstile/v0/api.js"</span> <span class="hljs-attr">async</span> <span class="hljs-attr">defer</span>&gt;<span class="hljs-tag">&lt;/<span class="hljs-name">script</span></span>&gt;<br />
<span class="hljs-tag">&lt;<span class="hljs-name">form</span></span> <span class="hljs-attr">id</span>=<span class="hljs-string">"login-form"</span> <span class="hljs-attr">method</span>=<span class="hljs-string">"POST"</span> <span class="hljs-attr">action</span>=<span class="hljs-string">"/login"</span>&gt;<br />
  <span class="hljs-comment">&lt;!-- alanlar --&gt;</span><br />
  <span class="hljs-tag">&lt;<span class="hljs-name">div</span></span> <span class="hljs-attr">class</span>=<span class="hljs-string">"cf-turnstile"</span> <span class="hljs-attr">data-sitekey</span>=<span class="hljs-string">"YOUR_SITE_KEY"</span> <span class="hljs-attr">data-theme</span>=<span class="hljs-string">"auto"</span>&gt;<span class="hljs-tag">&lt;/<span class="hljs-name">div</span></span>&gt;<br />
  <span class="hljs-tag">&lt;<span class="hljs-name">button</span></span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;Giriş<span class="hljs-tag">&lt;/<span class="hljs-name">button</span></span>&gt;<br />
<span class="hljs-tag">&lt;/<span class="hljs-name">form</span></span>&gt;<br />
</code></div>
</div>
<p data-start="6080" data-end="6351">Sunucuda (ör. Node) doğrularken token’ı <strong data-start="6120" data-end="6135">/siteverify</strong> ile kontrol et; puan düşükse ek doğrulama iste. Turnstile, Cloudflare CDN’i kullanmasan bile gömülebilir; önce sessiz sinyaller toplar, gerekirse hafif bir challenge gösterir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developers.cloudflare.com/turnstile/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Cloudflare Docs</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<p data-start="6353" data-end="6598"><strong data-start="6353" data-end="6397">AI Labyrinth (decoy sayfalarla oyalama):</strong> robots.txt’ye uymayan/bilinen AI tarayıcılarına karşı botu “labirente” sokarak kaynaklarını tüketen yeni savunma; Cloudflare üzerinde ücretsiz/opt-in sunuluyor. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://blog.cloudflare.com/ai-labyrinth/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">The Cloudflare Blog</span></span></span></a></span></span></p>
<p data-start="6600" data-end="6838"><strong data-start="6600" data-end="6618">Güncel bağlam:</strong> Cloudflare 2025’te <strong data-start="6638" data-end="6678">AI crawler’ları varsayılan engelleme</strong> ve <strong data-start="6682" data-end="6699">Pay Per Crawl</strong> seçeneklerini duyurdu; robots.txt’yi yok sayan botlara karşı altyapı seviyesinde kontrol sağlıyor. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.theverge.com/news/695501/cloudflare-block-ai-crawlers-default?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">The Verge</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<h3 data-start="6840" data-end="6888" id="c-aws-waf-bot-control-yonetilen-kurallar">C) AWS WAF: Bot Control + yönetilen kurallar</h3>
<ul data-start="6889" data-end="7055">
<li data-start="6889" data-end="7055">
<p data-start="6891" data-end="7055"><strong data-start="6891" data-end="6914">AWS WAF Bot Control</strong>: Bilinen bot kategorilerini (iyi/kötü) ayıran yönetilen kurallar; özel kurallarla birleştirilebilir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">docs.aws.amazon.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
</ul>
<p data-start="7057" data-end="7111"><strong data-start="7057" data-end="7111">Örnek (IP başına /login rate limit + Bot Control):</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-json"><span class="hljs-punctuation">[</span><br />
  <span class="hljs-punctuation">{</span><br />
    <span class="hljs-attr">"Name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"AllowPartners"</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"Priority"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">0</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"Statement"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"IPSetReferenceStatement"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"ARN"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"arn:aws:wafv2:...:ipset/partners"</span> <span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"Action"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"Allow"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"VisibilityConfig"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"SampledRequestsEnabled"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"CloudWatchMetricsEnabled"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"MetricName"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"AllowPartners"</span> <span class="hljs-punctuation">}</span><br />
  <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
  <span class="hljs-punctuation">{</span><br />
    <span class="hljs-attr">"Name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"AWSBotControl"</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"Priority"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">1</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"Statement"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"ManagedRuleGroupStatement"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"VendorName"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"AWS"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"Name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"AWSManagedRulesBotControlRuleSet"</span> <span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"OverrideAction"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"None"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"VisibilityConfig"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"SampledRequestsEnabled"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"CloudWatchMetricsEnabled"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"MetricName"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"BotControl"</span> <span class="hljs-punctuation">}</span><br />
  <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
  <span class="hljs-punctuation">{</span><br />
    <span class="hljs-attr">"Name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"RateLimitLoginPerIP"</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"Priority"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">10</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"Statement"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br />
      <span class="hljs-attr">"RateBasedStatement"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br />
        <span class="hljs-attr">"Limit"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">300</span><span class="hljs-punctuation">,</span><br />
        <span class="hljs-attr">"AggregateKeyType"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"IP"</span><span class="hljs-punctuation">,</span><br />
        <span class="hljs-attr">"ScopeDownStatement"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br />
          <span class="hljs-attr">"ByteMatchStatement"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br />
            <span class="hljs-attr">"SearchString"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"/login"</span><span class="hljs-punctuation">,</span><br />
            <span class="hljs-attr">"FieldToMatch"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"UriPath"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
            <span class="hljs-attr">"TextTransformations"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-punctuation">{</span> <span class="hljs-attr">"Type"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"NONE"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"Priority"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">0</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br />
            <span class="hljs-attr">"PositionalConstraint"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"STARTS_WITH"</span><br />
          <span class="hljs-punctuation">}</span><br />
        <span class="hljs-punctuation">}</span><br />
      <span class="hljs-punctuation">}</span><br />
    <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"Action"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"Block"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br />
    <span class="hljs-attr">"VisibilityConfig"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"SampledRequestsEnabled"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"CloudWatchMetricsEnabled"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"MetricName"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"RateLogin"</span> <span class="hljs-punctuation">}</span><br />
  <span class="hljs-punctuation">}</span><br />
<span class="hljs-punctuation">]</span><br />
</code></div>
</div>
<h3 data-start="8400" data-end="8455" id="d-google-recaptcha-enterprise-oat-uyumlu-mimari">D) Google reCAPTCHA (Enterprise): OAT uyumlu mimari</h3>
<p data-start="8456" data-end="8779">Google’ın <strong data-start="8466" data-end="8473">OAT</strong> tehditlerine göre en iyi uygulamalar kılavuzu, kart dolandırıcılığı, credential stuffing vb. senaryolarda <strong data-start="8580" data-end="8596">puan tabanlı</strong> karar akışları ve “ek doğrulama” önerir. Uygulamada, skor/bağlama göre “izin ver / MFA iste / insan doğrulaması iste / reddet” kuralı tanımla. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://cloud.google.com/recaptcha/docs/best-practices-oat?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Google Cloud</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<h3 data-start="8781" data-end="8839" id="e-ga4-ic-developer-trafigini-disla-olcum-temizligi">E) GA4: İç/developer trafiğini dışla (ölçüm temizliği)</h3>
<ul data-start="8840" data-end="9150">
<li data-start="8840" data-end="9010">
<p data-start="8842" data-end="9010"><strong data-start="8842" data-end="8862">Internal traffic</strong>: IP’leri “Define internal traffic” ile tanımla, ardından <strong data-start="8920" data-end="8936">Data Filters</strong>’ta <strong data-start="8940" data-end="8951">Exclude</strong> olarak aktif et. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.google.com/analytics/answer/10104470?hl=en&amp;utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Google Yardım</span></span></span></a></span></span></p>
</li>
<li data-start="9011" data-end="9150">
<p data-start="9013" data-end="9150">(İpucu) GA4, iç trafikten gelen vuruşlara <code data-start="9055" data-end="9068">tt=internal</code> işareti koyar; validasyonu kolaylaştırır. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://selnekovic.com/ga4-internal-traffic-filtering-with-traffic-type-marker/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">selnekovic.com</span></span></span></a></span></span></p>
</li>
</ul>
<h3 data-start="9152" data-end="9183" id="f-izleme-alarm-fikirleri">F) İzleme &amp; alarm fikirleri</h3>
<ul data-start="9184" data-end="9513">
<li data-start="9184" data-end="9246">
<p data-start="9186" data-end="9246"><strong data-start="9186" data-end="9203">429/5xx oranı</strong> ve <strong data-start="9207" data-end="9243">endpoint başına z-skor sapmaları</strong>.</p>
</li>
<li data-start="9247" data-end="9310">
<p data-start="9249" data-end="9310"><strong data-start="9249" data-end="9270">Cookie-less istek</strong> oranı, <strong data-start="9278" data-end="9290">ASN/ülke</strong> bazlı patlamalar.</p>
</li>
<li data-start="9311" data-end="9395">
<p data-start="9313" data-end="9395"><strong data-start="9313" data-end="9342">Decoy/honeypot isabetleri</strong> metriki (AI Labyrinth/honeypot sayfalarına giriş).</p>
</li>
<li data-start="9396" data-end="9513">
<p data-start="9398" data-end="9513"><strong data-start="9398" data-end="9423">API saldırı trendleri</strong> için Akamai’nin SOTI raporlarını periyodik takip. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://vmblog.com/archive/2025/04/28/akamai-research-web-attacks-up-33-apis-emerge-as-primary-targets.aspx?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">vmblog.com</span></span></span></a></span></span></p>
</li>
</ul>
<hr data-start="9515" data-end="9518" />
<h2 data-start="9520" data-end="9560" id="neden-robots-txt-tek-basina-yetmiyor">Neden robots.txt tek başına yetmiyor?</h2>
<p data-start="9561" data-end="9839">Son 1 yılda; kimliğini gizleyen, <strong data-start="9594" data-end="9627">robots.txt’yi görmezden gelen</strong> ya da <strong data-start="9634" data-end="9655">UA/başlık taklidi</strong> yapan AI tarayıcılarına dair çok sayıda bulgu paylaşıldı. Bu yüzden <strong data-start="9724" data-end="9757">altyapı seviyesinde engelleme</strong> (WAF/ASN/UA/Rate limit/Decoy) gereklidir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://arstechnica.com/tech-policy/2025/01/ai-haters-build-tarpits-to-trap-and-trick-ai-scrapers-that-ignore-robots-txt/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">arstechnica.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<hr data-start="9841" data-end="9844" />
<h2 data-start="9846" data-end="9897" id="kullanici-deneyimi-kademeli-surtunme-prensibi">Kullanıcı deneyimi: “kademeli sürtünme” prensibi</h2>
<ul data-start="9898" data-end="10164">
<li data-start="9898" data-end="10164">
<p data-start="9900" data-end="10164">Herkese CAPTCHA göstermek yerine, <strong data-start="9934" data-end="9949">risk skorlu</strong> ve <strong data-start="9953" data-end="9965">kademeli</strong> zorlaştırma kullanın: düşük riskli akışlarda sürtünme yok; risk yükseldikçe <strong data-start="10042" data-end="10079">MFA / challenge / manuel inceleme</strong>. Turnstile ve reCAPTCHA bu modeli destekler. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developers.cloudflare.com/turnstile/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Cloudflare Docs</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
</ul>
<hr data-start="10166" data-end="10169" />
<h2 data-start="10171" data-end="10211" id="ek-somut-kural-seti-taslagi-ozet">Ek: Somut “kural seti” taslağı (özet)</h2>
<ol data-start="10212" data-end="11171">
<li data-start="10212" data-end="10398">
<p data-start="10215" data-end="10398"><strong data-start="10215" data-end="10224">Nginx</strong>: <code data-start="10226" data-end="10234">/login</code> için IP+username anahtarıyla <code data-start="10264" data-end="10275">limit_req</code>; form uçlarına honeypot + saatlik limit; “sıcak” scraping uçlarına 1 r/s sınırı. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://nginx.org/en/docs/http/ngx_http_limit_req_module.html?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">nginx.org</span></span></span></a></span></span></p>
</li>
<li data-start="10399" data-end="10633">
<p data-start="10402" data-end="10633"><strong data-start="10402" data-end="10416">Cloudflare</strong>: Turnstile’ı yalnızca <strong data-start="10439" data-end="10461">login/signup/ödeme</strong> gibi riskli akışlara yerleştir; <strong data-start="10494" data-end="10510">AI Labyrinth</strong>’i aç; bilinen AI UA’ları ve “şüpheli oran” için WAF’ta Managed Challenge uygula. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developers.cloudflare.com/turnstile/?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Cloudflare Docs</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
<li data-start="10634" data-end="10771">
<p data-start="10637" data-end="10771"><strong data-start="10637" data-end="10648">AWS WAF</strong>: Önde Allowlist → <strong data-start="10667" data-end="10682">Bot Control</strong> → <strong data-start="10685" data-end="10704">Common Rule Set</strong> → akışa özel rate limit. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">docs.aws.amazon.com</span></span></span></a></span></span></p>
</li>
<li data-start="10772" data-end="10916">
<p data-start="10775" data-end="10916"><strong data-start="10775" data-end="10782">GA4</strong>: Internal/Developer filtreleri <strong data-start="10814" data-end="10824">Active</strong>; bot benzeri oturumlar için ayrı segment oluştur. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.google.com/analytics/answer/10104470?hl=en&amp;utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Google Yardım</span></span></span></a></span></span></p>
</li>
<li data-start="10917" data-end="11029">
<p data-start="10920" data-end="11029"><strong data-start="10920" data-end="10943">Sürekli iyileştirme</strong>: Hatalı pozitif vakalarını toplayıp istisnalar yaz; eşikleri haftalık gözden geçir.</p>
</li>
<li data-start="11030" data-end="11171">
<p data-start="11033" data-end="11171"><strong data-start="11033" data-end="11049">Trend takibi</strong>: API saldırıları ve scraper davranışlarına dair Akamai SOTI raporlarını takip et. <span class="" data-state="delayed-open" aria-describedby="radix-_r_1jf_"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill" aria-describedby="radix-_r_1jf_"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out bg-token-text-primary! text-token-main-surface-primary!" href="https://www.akamai.com/resources/state-of-the-internet?utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Akamai</span></span></span></a></span></span></p>
</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/web-sitelerinde-spam-trafigini-engelleme-2025-rehberi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>500 Plesk\Exception\Database Hatası (SQLSTATE 2002) – Kesin Çözüm Rehberi</title>
		<link>https://saviorhost.com/blog/500-pleskexceptiondatabase-hatasi-sqlstate-2002-kesin-cozum-rehberi/</link>
					<comments>https://saviorhost.com/blog/500-pleskexceptiondatabase-hatasi-sqlstate-2002-kesin-cozum-rehberi/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Tue, 14 Oct 2025 13:56:40 +0000</pubDate>
				<category><![CDATA[Güvenlik]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://saviorhost.com/blog/?p=2146</guid>

					<description><![CDATA[“500 Plesk\Exception\Database” tipik olarak Plesk’in kendi veritabanına (psa) ya da alttaki MySQL/MariaDB/Plesk SQL Server hizmetine bağlanamamasıyla oluşur. Nedeni çoğunlukla servis...]]></description>
										<content:encoded><![CDATA[<p data-start="772" data-end="1174">“500 Plesk\Exception\Database” tipik olarak Plesk’in kendi veritabanına (<em data-start="845" data-end="850">psa</em>) ya da alttaki MySQL/MariaDB/Plesk SQL Server hizmetine bağlanamamasıyla oluşur. Nedeni çoğunlukla servis kapalı, disk dolu, socket/port hatası, bozulmuş <em data-start="1005" data-end="1010">psa</em> tabloları veya geçici “repair” işlemleridir. Plesk’in resmi <strong data-start="1071" data-end="1089">Repair Utility</strong> aracı çoğu olayı tek komutla tespit ve onarır. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.plesk.com/en-US/obsidian/administrator-guide/plesk-administration/plesk-repair-utility.74649/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">docs.plesk.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<hr data-start="1176" data-end="1179" />
<h2 data-start="1181" data-end="1244" id="ilk-teshis-gunlukleri-log-ve-servis-durumunu-kontrol-edin">İlk Teşhis: Günlükleri (Log) ve Servis Durumunu Kontrol Edin</h2>
<ol data-start="1245" data-end="1974">
<li data-start="1245" data-end="1548">
<p data-start="1248" data-end="1342"><strong data-start="1248" data-end="1280">Plesk arayüzü erişilemiyorsa</strong>, sunucuya SSH ile bağlanın ve MariaDB/MySQL durumuna bakın:</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">systemctl status mariadb<br />
journalctl -u mariadb -n 200 --no-pager<br />
</code></div>
</div>
<p data-start="1435" data-end="1548">(Windows’ta Olay Görüntüleyici ve Plesk SQL Server servisini kontrol edin.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/12377018133911-Plesk-is-not-accessible-500-Plesk-Exception-Database-Plesk-SQL-Server-Error-1053?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
</li>
<li data-start="1550" data-end="1773">
<p data-start="1553" data-end="1640"><strong data-start="1553" data-end="1578">Geçmiş boot loglarını</strong> inceleyin (özellikle beklenmedik yeniden başlatma sonrası):</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">journalctl --boot=-1 -n 5000<br />
</code></div>
</div>
<p data-start="1694" data-end="1773">(Forumda doğrulanan pratik bir yaklaşım.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://talk.plesk.com/threads/server-error-500-plesk-exception-database-solved-but-why.371832/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Plesk Forum</span></span></span></a></span></span></p>
</li>
<li data-start="1775" data-end="1974">
<p data-start="1778" data-end="1797"><strong data-start="1778" data-end="1794">Disk doluluk</strong>:</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash"><span class="hljs-built_in">df</span> -h<br />
<span class="hljs-built_in">du</span> -sh /var/lib/mysql/* | <span class="hljs-built_in">sort</span> -h<br />
</code></div>
</div>
<p data-start="1865" data-end="1974">Diskin dolması, MySQL’in başlamasını engeller ve 500 hatasına yol açar. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://talk.plesk.com/threads/help-server-error500-plesk-exception-database.372024/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Plesk Forum</span></span></span></a></span></span></p>
</li>
</ol>
<hr data-start="1976" data-end="1979" />
<h2 data-start="1981" data-end="2029" id="hizli-onarim-plesk-repair-utility-onerilen">Hızlı Onarım: Plesk Repair Utility (Önerilen)</h2>
<p data-start="2030" data-end="2047"><strong data-start="2030" data-end="2045">Çalıştırın:</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">plesk repair db<br />
</code></div>
</div>
<p data-start="2076" data-end="2271">Bu komut Plesk veritabanı tutarlılığını denetler, gerekirse otomatik yedek (dump) alır ve onarım dener. Linux/Windows’ta kullanılabilir. Ek seçenek gerekmez. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.plesk.com/en-US/obsidian/administrator-guide/plesk-administration/plesk-repair-utility/plesk-repair-utility-plesk-database.74665/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">docs.plesk.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+2</span></span><span class="flex h-4 w-full items-center justify-between absolute"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">plesk.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+2</span></span></span></a></span></span></p>
<blockquote data-start="2273" data-end="2525">
<p data-start="2275" data-end="2525"><strong data-start="2275" data-end="2303">Not – Geçici 500 Hatası:</strong> <code data-start="2304" data-end="2331">plesk repair installation</code> gibi geniş onarım çalışırken Plesk kısa süre erişilemez ve 500 hatası görülebilir; bu, bilinen bir Repair Kit davranışı/bug’ıdır ve işlem bitince kaybolur. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/12376955793175-Diagnose-Repair-tool-provides-the-error-when-repairing-Plesk-installation-500-Plesk-Expection-Database?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
</blockquote>
<hr data-start="2527" data-end="2530" />
<h2 data-start="2532" data-end="2590" id="senaryo-a-sqlstatehy0002002-connection-refused">Senaryo A: <strong data-start="2546" data-end="2590">SQLSTATE[HY000][2002] Connection refused</strong></h2>
<p data-start="2591" data-end="2605"><strong data-start="2591" data-end="2603">Belirti:</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre!">DB query failed: "SET sql_mode = ''"<br />
Error: <span class="hljs-built_in">SQLSTATE</span>[HY000][<span class="hljs-number">2002</span>] <span class="hljs-keyword">Connection</span> refused<br />
</code></div>
</div>
<p data-start="2699" data-end="2779"><strong data-start="2699" data-end="2709">Neden:</strong> MariaDB/MySQL servisinin down olması veya başlayamaması.<br data-start="2766" data-end="2769" /><strong data-start="2769" data-end="2779">Çözüm:</strong></p>
<ol data-start="2780" data-end="3096">
<li data-start="2780" data-end="2894">
<p data-start="2783" data-end="2819">Servisi başlatın/yeniden başlatın:</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">systemctl restart mariadb<br />
systemctl status mariadb<br />
</code></div>
</div>
</li>
<li data-start="2895" data-end="2976">
<p data-start="2898" data-end="2976">Loglardaki temel sebebi giderin (ör. yapılandırma, port çakışması, izinler).</p>
</li>
<li data-start="2977" data-end="3096">
<p data-start="2980" data-end="3096">Ardından <code data-start="2989" data-end="3006">plesk repair db</code> çalıştırın.<br data-start="3018" data-end="3021" />Kaynak ve aynı hatanın resmi analizi: <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/15456789107223-Unable-to-access-Plesk-panel-ERROR-500-Plesk-Exception-Database-SQLSTATE-HY000-2002-Connection-refused?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
</li>
</ol>
<hr data-start="3098" data-end="3101" />
<h2 data-start="3103" data-end="3168" id="senaryo-b-sqlstatehy0002002-no-such-file-or-directory">Senaryo B: <strong data-start="3117" data-end="3168">SQLSTATE[HY000][2002] No such file or directory</strong></h2>
<p data-start="3169" data-end="3183"><strong data-start="3169" data-end="3181">Belirti:</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre!"><span class="hljs-meta prompt_">...</span> <span class="language-python">[<span class="hljs-number">2002</span></span>] No such file <span class="hljs-keyword">or</span> directory<br />
</code></div>
</div>
<p data-start="3229" data-end="3348"><strong data-start="3229" data-end="3239">Neden:</strong> MySQL socket dosyası yok/yanlış yol, servis kapalı veya disk taşması sonucunda soket oluşmuyor.<br data-start="3335" data-end="3338" /><strong data-start="3338" data-end="3348">Çözüm:</strong></p>
<ol data-start="3349" data-end="3645">
<li data-start="3349" data-end="3471">
<p data-start="3352" data-end="3471">Servisi yeniden başlatın; <code data-start="3378" data-end="3391">/etc/my.cnf</code> içindeki <code data-start="3401" data-end="3409">socket</code> yolunu ve <code data-start="3420" data-end="3447">/var/lib/mysql/mysql.sock</code> varlığını doğrulayın.</p>
</li>
<li data-start="3472" data-end="3517">
<p data-start="3475" data-end="3517">Disk doluysa alan açın (bkz. Senaryo D).</p>
</li>
<li data-start="3518" data-end="3645">
<p data-start="3521" data-end="3645">Gerekirse <code data-start="3531" data-end="3537">/tmp</code> izinlerini ve AppArmor/SELinux kısıtlarını kontrol edin.<br data-start="3594" data-end="3597" />Doğrulama: <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://talk.plesk.com/threads/error-500-plesk-exception-database-db-query-failed-sqlstate-hy000-2002-no-such-file-or-directory.373886/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Plesk Forum</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
</ol>
<hr data-start="3647" data-end="3650" />
<h2 data-start="3652" data-end="3724" id="senaryo-c-plesk-sql-server-error-1053-windows-port-cakismasi">Senaryo C: <strong data-start="3666" data-end="3724">Plesk SQL Server Error 1053 (Windows) / Port Çakışması</strong></h2>
<p data-start="3725" data-end="3923"><strong data-start="3725" data-end="3737">Belirti:</strong> 1053; Event Viewer’da “Bind on TCP/IP port 3306… already in use”.<br data-start="3803" data-end="3806" /><strong data-start="3806" data-end="3816">Neden:</strong> Plesk SQL Server servis yapılandırması hatalı ya da 3306 portunu başka bir mysqld kullanıyor.<br data-start="3910" data-end="3913" /><strong data-start="3913" data-end="3923">Çözüm:</strong></p>
<ol data-start="3924" data-end="4131">
<li data-start="3924" data-end="4003">
<p data-start="3927" data-end="4003">Hizmetin “Path to executable” ayarını doğru my.ini bilgisiyle güncelleyin.</p>
</li>
<li data-start="4004" data-end="4131">
<p data-start="4007" data-end="4131">Port çakışması varsa bağlanan diğer MySQL örneğini kapatın/portu değiştirin.<br data-start="4083" data-end="4086" />Kaynak: <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/12377018133911-Plesk-is-not-accessible-500-Plesk-Exception-Database-Plesk-SQL-Server-Error-1053?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
</li>
</ol>
<hr data-start="4133" data-end="4136" />
<h2 data-start="4138" data-end="4191" id="senaryo-d-disk-dolu-no-space-left-on-device">Senaryo D: <strong data-start="4152" data-end="4191">Disk Dolu (No space left on device)</strong></h2>
<p data-start="4192" data-end="4278"><strong data-start="4192" data-end="4204">Belirti:</strong> MySQL başlatılamıyor; günlüklerde “No space left on device”.<br data-start="4265" data-end="4268" /><strong data-start="4268" data-end="4278">Çözüm:</strong></p>
<ol data-start="4279" data-end="4486">
<li data-start="4279" data-end="4358">
<p data-start="4282" data-end="4358"><code data-start="4282" data-end="4289">df -h</code> ile dolu diskleri tespit edin, gereksiz log/backupları temizleyin.</p>
</li>
<li data-start="4359" data-end="4486">
<p data-start="4362" data-end="4486">MariaDB’yi yeniden başlatın, ardından <code data-start="4400" data-end="4417">plesk repair db</code>.<br data-start="4418" data-end="4421" />Resmi Plesk çözüm makalesi: <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://talk.plesk.com/threads/help-server-error500-plesk-exception-database.372024/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Plesk Forum</span></span></span></a></span></span></p>
</li>
</ol>
<hr data-start="4488" data-end="4491" />
<h2 data-start="4493" data-end="4558" id="senaryo-e-bozulmus-plesk-sistem-veritabanlari-psa-vb">Senaryo E: <strong data-start="4507" data-end="4558">Bozulmuş Plesk Sistem Veritabanları (<em data-start="4546" data-end="4551">psa</em> vb.)</strong></h2>
<p data-start="4559" data-end="4665"><strong data-start="4559" data-end="4571">Belirti:</strong> <em data-start="4572" data-end="4577">psa</em> tabloları “crashed”/tutarsız; Plesk arayüzü 500 veriyor.<br data-start="4634" data-end="4637" /><strong data-start="4637" data-end="4665">Çözüm (önce yedek alın):</strong></p>
<ol data-start="4666" data-end="5174">
<li data-start="4666" data-end="4727">
<p data-start="4669" data-end="4690"><strong data-start="4669" data-end="4687">Repair Utility</strong>:</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">plesk repair db<br />
</code></div>
</div>
</li>
<li data-start="4728" data-end="4998">
<p data-start="4731" data-end="4998"><strong data-start="4731" data-end="4773">Gerekirse günlük yedekten geri yükleme</strong> (Plesk’in otomatik dump’ları):<br data-start="4804" data-end="4807" />Plesk günlük/pre-upgrade dump’tan <em data-start="4844" data-end="4849">psa</em>’yı geri yükleme adımları resmi rehberde anlatılır. (Örnek komutlar ve değiştirme notları rehberde mevcut.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.plesk.com/kb/support/how-to-restore-plesk-system-databases-from-a-plesk-daily-pre-upgrade-dump/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">plesk.com</span></span></span></a></span></span></p>
</li>
<li data-start="4999" data-end="5174">
<p data-start="5002" data-end="5174">Alternatif CLI restore notları (ilerseviye): dump’tan <em data-start="5056" data-end="5062">apsc</em>/<em data-start="5063" data-end="5068">psa</em> geri yükleme pratikleri. (Topluluk deneyimi; dikkatle uygulayın.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://wpguru.co.uk/2025/01/restoring-a-database-in-plesk-from-the-command-line/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">The WP Guru</span></span></span></a></span></span></p>
</li>
</ol>
<blockquote data-start="5176" data-end="5392">
<p data-start="5178" data-end="5392"><strong data-start="5178" data-end="5188">Uyarı:</strong> Manuel <code data-start="5196" data-end="5217">mysqlcheck --repair</code> veya <code data-start="5223" data-end="5246">innodb_force_recovery</code> gibi adımlar verinizi riske sokabilir; önce <strong data-start="5291" data-end="5307">resmi repair</strong> ve <strong data-start="5311" data-end="5333">resmi geri yükleme</strong> yollarını deneyin. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.plesk.com/en-US/obsidian/administrator-guide/plesk-administration/plesk-repair-utility/plesk-repair-utility-plesk-database.74665/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">docs.plesk.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</blockquote>
<hr data-start="5394" data-end="5397" />
<h2 data-start="5399" data-end="5462" id="senaryo-f-gecici-repair-calisirken-plesk-inaccessible">Senaryo F: <strong data-start="5413" data-end="5462">Geçici — Repair Çalışırken Plesk İnaccessible</strong></h2>
<p data-start="5463" data-end="5660"><strong data-start="5463" data-end="5475">Belirti:</strong> <code data-start="5476" data-end="5503">plesk repair installation</code> sırasında panel 500 hatası döner.<br data-start="5537" data-end="5540" /><strong data-start="5540" data-end="5550">Çözüm:</strong> İşlem tamamlanınca düzelir; bilinen bir davranış/bug kaydı mevcuttur. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/12376955793175-Diagnose-Repair-tool-provides-the-error-when-repairing-Plesk-installation-500-Plesk-Expection-Database?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
<hr data-start="5662" data-end="5665" />
<h2 data-start="5667" data-end="5742" id="senaryo-g-eksik-silinmis-dosya-veya-antivirus-karantinasi-windows">Senaryo G: <strong data-start="5681" data-end="5742">Eksik/Silinmiş Dosya veya Antivirüs Karantinası (Windows)</strong></h2>
<p data-start="5743" data-end="5974"><strong data-start="5743" data-end="5755">Belirti:</strong> “500 Internal Server Error – Failed opening required …”<br data-start="5811" data-end="5814" /><strong data-start="5814" data-end="5824">Çözüm:</strong> Eksik dosyayı aynı sürüm çalışan bir Plesk’ten geri getirin; antivirüse <strong data-start="5897" data-end="5912">%plesk_dir%</strong> için istisna ekleyin. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/15157722190231-Plesk-panel-fails-to-open-500-Internal-Server-Error?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
<hr data-start="5976" data-end="5979" />
<h2 data-start="5981" data-end="6037" id="adim-adim-standart-duzeltme-akisi-onerilen-playbook">Adım Adım Standart Düzeltme Akışı (Önerilen Playbook)</h2>
<ol data-start="6038" data-end="6774">
<li data-start="6038" data-end="6158">
<p data-start="6041" data-end="6158"><strong data-start="6041" data-end="6067">Servisleri kontrol et:</strong> <code data-start="6068" data-end="6094">systemctl status mariadb</code> → hata varsa log oku. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/15456789107223-Unable-to-access-Plesk-panel-ERROR-500-Plesk-Exception-Database-SQLSTATE-HY000-2002-Connection-refused?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
</li>
<li data-start="6159" data-end="6246">
<p data-start="6162" data-end="6246"><strong data-start="6162" data-end="6177">Disk alanı:</strong> <code data-start="6178" data-end="6185">df -h</code> → doluysa temizle. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://talk.plesk.com/threads/help-server-error500-plesk-exception-database.372024/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Plesk Forum</span></span></span></a></span></span></p>
</li>
<li data-start="6247" data-end="6355">
<p data-start="6250" data-end="6355"><strong data-start="6250" data-end="6278">Repair Utility çalıştır:</strong> <code data-start="6279" data-end="6296">plesk repair db</code> (Linux/Windows). <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.plesk.com/en-US/obsidian/administrator-guide/plesk-administration/plesk-repair-utility/plesk-repair-utility-plesk-database.74665/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">docs.plesk.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
<li data-start="6356" data-end="6498">
<p data-start="6359" data-end="6498"><strong data-start="6359" data-end="6383">Socket/Port doğrula:</strong> <code data-start="6384" data-end="6396">mysql.sock</code> yolu ve 3306 çakışması. (Windows’ta hizmet yapılandırması.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/12377018133911-Plesk-is-not-accessible-500-Plesk-Exception-Database-Plesk-SQL-Server-Error-1053?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
<li data-start="6499" data-end="6627">
<p data-start="6502" data-end="6627"><strong data-start="6502" data-end="6524">Hâlâ sorun var mı?</strong> <strong data-start="6525" data-end="6551">Plesk sistem DB’lerini</strong> dump’tan geri yükle (örn. <em data-start="6578" data-end="6583">psa</em>). <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.plesk.com/kb/support/how-to-restore-plesk-system-databases-from-a-plesk-daily-pre-upgrade-dump/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">plesk.com</span></span></span></a></span></span></p>
</li>
<li data-start="6628" data-end="6774">
<p data-start="6631" data-end="6774"><strong data-start="6631" data-end="6649">Geçici 500 mi?</strong> Repair esnasında oluştuysa görmezden gelebilirsiniz; işlem bitince panel geri gelir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/12376955793175-Diagnose-Repair-tool-provides-the-error-when-repairing-Plesk-installation-500-Plesk-Expection-Database?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
</li>
</ol>
<hr data-start="6776" data-end="6779" />
<h2 data-start="6781" data-end="6787" id="sss">SSS</h2>
<p data-start="6789" data-end="6947"><strong data-start="6789" data-end="6825">Bu hata neden “genel” gözüküyor?</strong><br data-start="6825" data-end="6828" />“500 Plesk\Exception\Database” şemsiye bir hatadır; somut sebep loglarda çıkar. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://talk.plesk.com/threads/server-error-500-plesk-exception-database-solved-but-why.371832/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Plesk Forum</span></span></span></a></span></span></p>
<p data-start="6949" data-end="7143"><strong data-start="6949" data-end="7003">Plesk’te veritabanını GUI’den de onarabilir miyim?</strong><br data-start="7003" data-end="7006" />Evet; “Websites &amp; Domains → Databases → Check and Repair”. (Sürümünüze göre görünüm değişebilir.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://lets-rebuild.com/how-to-repair-plesk-database.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">lets-rebuild.com</span></span></span></a></span></span></p>
<p data-start="7145" data-end="7305"><strong data-start="7145" data-end="7179">Repair sırasında 500 görürsem?</strong><br data-start="7179" data-end="7182" />Bu beklenen bir davranış olabilir; repair bitince panel geri gelir (EXTPLESK-3451). <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/12376955793175-Diagnose-Repair-tool-provides-the-error-when-repairing-Plesk-installation-500-Plesk-Expection-Database?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span></span></span></a></span></span></p>
<hr data-start="7307" data-end="7310" />
<h2 data-start="7312" data-end="7345" id="ileri-duzey-notlar-ve-ipuclari">İleri Düzey Notlar ve İpuçları</h2>
<ul data-start="7346" data-end="7771">
<li data-start="7346" data-end="7411">
<p data-start="7348" data-end="7411"><strong data-start="7348" data-end="7387">Komutları üretimde uygulamadan önce</strong> snapshot/backup alın.</p>
</li>
<li data-start="7412" data-end="7574">
<p data-start="7414" data-end="7574">Plesk Repair Utility, tutarsızlık bulursa otomatik dump alıp onarım dener; bu nedenle <strong data-start="7500" data-end="7524">ilk başvuru aracınız</strong> olmalı. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.plesk.com/en-US/obsidian/administrator-guide/plesk-administration/plesk-repair-utility/plesk-repair-utility-plesk-database.74665/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">docs.plesk.com</span></span></span></a></span></span></p>
</li>
<li data-start="7575" data-end="7771">
<p data-start="7577" data-end="7771">Hata <em data-start="7582" data-end="7609">No such file or directory</em> ise <strong data-start="7614" data-end="7624">socket</strong> yolunu ve <strong data-start="7635" data-end="7643">/tmp</strong> izinlerini kontrol edin; <em data-start="7669" data-end="7689">Connection refused</em> ise servis gerçekten çalışmıyor demektir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://support.plesk.com/hc/en-us/articles/15456789107223-Unable-to-access-Plesk-panel-ERROR-500-Plesk-Exception-Database-SQLSTATE-HY000-2002-Connection-refused?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">support.plesk.com</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/500-pleskexceptiondatabase-hatasi-sqlstate-2002-kesin-cozum-rehberi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress CPU Kullanımı Masterclass: Sunucunuzun Nefesini Kesen Sorunlara Derinlemesine Bakış ve Kanıtlanmış Çözüm Yöntemleri</title>
		<link>https://saviorhost.com/blog/wordpress-cpu-kullanimi-masterclass-sunucunuzun-nefesini-kesen-sorunlara-derinlemesine-bakis-ve-kanitlanmis-cozum-yontemleri/</link>
					<comments>https://saviorhost.com/blog/wordpress-cpu-kullanimi-masterclass-sunucunuzun-nefesini-kesen-sorunlara-derinlemesine-bakis-ve-kanitlanmis-cozum-yontemleri/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Fri, 10 Oct 2025 12:19:05 +0000</pubDate>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Nginx]]></category>
		<guid isPermaLink="false">https://saviorhost.com/blog/?p=2140</guid>

					<description><![CDATA[Bu rehber, sitenizin neden yavaşladığını sadece anlamanızı değil, aynı zamanda bilinçli ve kalıcı çözümler uygulamanızı sağlayacak teknik bilgileri de içermektedir....]]></description>
										<content:encoded><![CDATA[<p>Bu rehber, sitenizin neden yavaşladığını sadece anlamanızı değil, aynı zamanda bilinçli ve kalıcı çözümler uygulamanızı sağlayacak teknik bilgileri de içermektedir.</p>
<p>&nbsp;</p>
<h3 id="bolum-1-sorunun-kok-nedenleri-teknik-analiz">Bölüm 1: Sorunun Kök Nedenleri (Teknik Analiz)</h3>
<p>&nbsp;</p>
<p>Yüksek CPU kullanımının ardındaki mekanizmaları daha detaylı inceleyelim.</p>
<p>&nbsp;</p>
<h4 id="1-verimsiz-veritabani-sorgulari-cpunun-en-buyuk-dusmani">1. Verimsiz Veritabanı Sorguları: CPU&#8217;nun En Büyük Düşmanı</h4>
<p>&nbsp;</p>
<p><b>Detay:</b> Bir WordPress sayfası yüklendiğinde, arka planda onlarca SQL sorgusu çalışır. Bu sorgular, yazıları, yorumları, ayarları, eklenti verilerini veritabanından çeker. Sorun, bu sorguların &#8220;verimsiz&#8221; olmasıyla başlar.</p>
<ul>
<li><b>Döngü İçindeki Sorgular (Queries in Loops):</b> Bir eklenti veya tema, sayfanızdaki her bir yazı için ayrı ayrı veritabanına sorgu gönderiyorsa (örneğin, her yazı için özel bir meta bilgisi çekmek), bu durum CPU üzerinde katlanarak artan bir yük yaratır. 20 yazının olduğu bir sayfada bu, 1 yerine 20+ sorgu anlamına gelebilir.</li>
<li><b>JOIN ve Karmaşık Sorgular:</b> Özellikle &#8220;İlişkili Yazılar&#8221; (Related Posts) gibi özellikler sunan eklentiler, birden fazla tabloyu birleştiren (JOIN) ve metin analizi yapan karmaşık sorgular kullanır. Bu sorgular, basit bir veri çekme işlemine göre CPU&#8217;yu çok daha fazla meşgul eder.</li>
<li><b>Optimize Edilmemiş Meta Sorguları:</b> <code>wp_postmeta</code> ve <code>wp_usermeta</code> tablolarında arama yapmak, doğru &#8220;indekslenmemişse&#8221; son derece yavaş olabilir. WordPress bu konuda esnektir ancak bu esneklik, kötü kodlanmış bir eklentinin tüm veritabanını taramasına neden olabilir.</li>
</ul>
<p><b>Doğrulama:</b> Bu durumu teşhis etmek için <b>Query Monitor</b> eklentisi en iyi araçtır. Sitenizin her sayfasında çalışan tüm SQL sorgularını, ne kadar sürdüklerini ve hangi eklenti/tema tarafından tetiklendiklerini size gösterir. Eğer bir eklentinin 0.5 saniyeden uzun süren sorgular yaptığını görürseniz, suçluyu buldunuz demektir.</p>
<p>&nbsp;</p>
<h4 id="2-wordpress-heartbeat-api-sessiz-cpu-tuketicisi">2. WordPress Heartbeat API: Sessiz CPU Tüketicisi</h4>
<p>&nbsp;</p>
<p><b>Detay:</b> WordPress yönetici paneline girdiğinizde, tarayıcınız ile sunucunuz arasında düzenli bir iletişim kurulur. Bu iletişim, &#8220;Heartbeat API&#8221; aracılığıyla gerçekleşir. Her 15-60 saniyede bir, sunucuya küçük AJAX istekleri gönderilir. Bu ne işe yarar?</p>
<ul>
<li>Yazı yazarken otomatik taslak kaydı yapar.</li>
<li>Başka bir yazarın aynı yazıyı düzenleyip düzenlemediğini kontrol eder.</li>
<li>Panodaki eklenti bildirimlerini günceller.</li>
</ul>
<p><b>Sorun:</b> Yönetici panelinde birden fazla sekme açık olduğunda veya birden fazla editör aynı anda çalıştığında, bu küçük istekler birleşerek sunucuya sürekli bir &#8220;ping&#8221; seli gönderir. Her ping, <code>admin-ajax.php</code> dosyasını çalıştırır ve bu da bir PHP sürecini tetikleyerek CPU kullanır. Bu durum, &#8220;admin-ajax.php yüksek CPU kullanımı&#8221; sorununun temel nedenidir.</p>
<p><b>Doğrulama:</b> Hosting firmanızın kaynak kullanım raporlarında <code>admin-ajax.php</code> dosyasının sürekli en üst sıralarda olduğunu görüyorsanız, Heartbeat API&#8217;nin kontrolsüz çalıştığına emin olabilirsiniz.</p>
<p>&nbsp;</p>
<h4 id="3-wp-cron-ziyaretci-tetiklemeli-zaman-bombasi">3. WP-Cron: Ziyaretçi Tetiklemeli Zaman Bombası</h4>
<p>&nbsp;</p>
<p><b>Detay:</b> WP-Cron, gerçek bir &#8220;cron job&#8221; (sunucunun belirli zamanlarda otomatik çalıştırdığı görev) değildir. Bu bir &#8220;pseudo-cron&#8221; yani sahte cron&#8217;dur. Çalışması için sitenize bir ziyaretçinin gelmesi gerekir. Ziyaretçi geldiğinde WP-Cron tetiklenir ve &#8220;Zamanı gelmiş bir görev var mı?&#8221; diye kontrol eder.</p>
<p><b>Sorun:</b> Yüksek trafikli bir sitede, saniyede onlarca ziyaretçi gelebilir. Bu, WP-Cron&#8217;un saniyede onlarca kez tetiklenmesi demektir. Eğer zamanlanmış ağır bir görev varsa (örneğin, büyük bir yedekleme eklentisinin veritabanını taraması), birden fazla süreç aynı anda bu görevi çalıştırmaya çalışabilir. Bu &#8220;yarış durumu&#8221; (race condition), CPU&#8217;yu anında %100&#8217;e kilitleyebilir.</p>
<p><b>Doğrulama:</b> Sunucu erişim loglarınızı (<code>access.log</code>) incelediğinizde, <code>wp-cron.php</code> dosyasına yapılan isteklerin (POST requests) çok sık olduğunu görürseniz, bu durumun sitenizi olumsuz etkilediği doğrulanmış olur.</p>
<p>&nbsp;</p>
<h4 id="4-sisirilmis-wp_options-tablosu-ve-autoloaded-data">4. Şişirilmiş <code>wp_options</code> Tablosu ve &#8220;Autoloaded Data&#8221;</h4>
<p>&nbsp;</p>
<p><b>Detay:</b> WordPress&#8217;teki <code>wp_options</code> tablosu, sitenizin tüm ayarlarını, eklenti konfigürasyonlarını ve geçici verileri (transients) tutar. Bu tablodaki bazı veriler &#8220;autoload&#8221; (otomatik yükleme) olarak işaretlenir. Bu, WordPress&#8217;in her sayfa yüklemesinde bu verileri otomatik olarak belleğe yüklemesi anlamına gelir.</p>
<p><b>Sorun:</b> Kullandığınız ve daha sonra sildiğiniz eklentiler, geride yüzlerce gereksiz satır bırakabilir. Zamanla, otomatik yüklenen veri miktarı 1 MB&#8217;ı aşıp 5-10 MB&#8217;lara çıkabilir. Her bir ziyaretçi için bu kadar büyük verinin sürekli belleğe yüklenmesi, hem bellek (RAM) hem de CPU kullanımını artırır.</p>
<p><b>Doğrulama:</b> phpMyAdmin gibi bir veritabanı yönetim aracından aşağıdaki SQL sorgusunu çalıştırarak otomatik yüklenen verinin boyutunu görebilirsiniz:</p>
<div class="code-block ng-tns-c1007949973-99 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwjb_dKPlZmQAxUAAAAAHQAAAAAQqQM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1007949973-99 ng-star-inserted"><span class="ng-tns-c1007949973-99">SQL</span></p>
<div class="buttons ng-tns-c1007949973-99 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1007949973-99">
<div class="animated-opacity ng-tns-c1007949973-99">
<pre class="ng-tns-c1007949973-99"><code class="code-container formatted ng-tns-c1007949973-99" role="text" data-test-id="code-content"><span class="hljs-keyword">SELECT</span> <span class="hljs-built_in">SUM</span>(LENGTH(option_value)) <span class="hljs-operator">/</span> <span class="hljs-number">1024</span> <span class="hljs-operator">/</span> <span class="hljs-number">1024</span> <span class="hljs-keyword">FROM</span> wp_options <span class="hljs-keyword">WHERE</span> autoload <span class="hljs-operator">=</span> <span class="hljs-string">'yes'</span>;
</code></pre>
</div>
</div>
</div>
<p>Eğer sonuç 1-2 MB&#8217;ın üzerindeyse, bu tabloda optimizasyon yapmanız gerektiği doğrulanır.</p>
<hr />
<p>&nbsp;</p>
<h3 id="bolum-2-kapsamli-ve-uygulamali-cozum-stratejileri">Bölüm 2: Kapsamlı ve Uygulamalı Çözüm Stratejileri</h3>
<p>&nbsp;</p>
<p>Artık sorunun teknik kökenlerini bildiğimize göre, her birini hedef alan çözümlere geçebiliriz.</p>
<p>&nbsp;</p>
<h4 id="1-onbellekleme-caching-masterclass-sadece-kurmak-yetmez">1. Önbellekleme (Caching) Masterclass: Sadece Kurmak Yetmez</h4>
<p>&nbsp;</p>
<p>Önbellekleme, CPU kullanımını düşürmenin <b>en etkili</b> yoludur. Mekanizmayı daha iyi anlayalım:</p>
<ul>
<li><b>Sayfa Önbellekleme (Page Caching):</b> Bu en temel ve en etkili türdür. Ziyaretçiye sunulan dinamik PHP sayfasının tamamen statik bir HTML kopyasını oluşturur. Sunucu, PHP&#8217;yi çalıştırmak ve veritabanı sorguları yapmak yerine, bu hazır HTML dosyasını doğrudan sunar. Bu, CPU kullanımını %80-90 oranında azaltabilir.
<ul>
<li><b>Araçlar:</b> WP Rocket (premium, en kolayı), LiteSpeed Cache (LiteSpeed sunucularda en iyisi), W3 Total Cache (gelişmiş, çok ayar gerektirir).</li>
</ul>
</li>
<li><b>Nesne Önbellekleme (Object Caching):</b> Bu daha ileri bir tekniktir. Sık kullanılan ve tekrar tekrar çalıştırılan veritabanı sorgularının sonuçlarını, disk yerine doğrudan sunucunun belleğinde (RAM) tutar. <b>Redis</b> veya <b>Memcached</b> gibi teknolojilerle çalışır. Bir sorgunun sonucu bellekte varsa, WordPress veritabanına hiç gitmez. Bu, özellikle karmaşık sorgular yapan siteler ve WooCommerce gibi dinamik platformlar için CPU ve veritabanı yükünü ciddi anlamda azaltır.
<ul>
<li><b>Uygulama:</b> Hosting firmanızın Redis veya Memcached desteği sunması gerekir. Ardından, ilgili eklenti (örn. &#8220;Redis Object Cache&#8221;) ile WordPress&#8217;e entegre edilir.</li>
</ul>
</li>
<li><b>Veritabanı Önbellekleme:</b> W3 Total Cache gibi eklentiler, sorgu sonuçlarını diskte saklayarak bir tür nesne önbellekleme simülasyonu yapar, ancak Redis/Memcached kadar etkili değildir.</li>
</ul>
<p>&nbsp;</p>
<h4 id="2-gercek-cron-job-kurulumu-adim-adim">2. Gerçek Cron Job Kurulumu (Adım Adım)</h4>
<p>&nbsp;</p>
<p>WP-Cron&#8217;un yarattığı CPU artışlarını tamamen ortadan kaldırmak için:</p>
<ol start="1">
<li><b>WP-Cron&#8217;u Devre Dışı Bırakın:</b> Sitenizin kök dizinindeki <code>wp-config.php</code> dosyasını açın ve <code>/* That's all, stop editing! */</code> satırından önce şu kodu ekleyin:
<div class="code-block ng-tns-c1007949973-100 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwjb_dKPlZmQAxUAAAAAHQAAAAAQqgM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1007949973-100 ng-star-inserted"><span class="ng-tns-c1007949973-100">PHP</span></p>
<div class="buttons ng-tns-c1007949973-100 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1007949973-100">
<div class="animated-opacity ng-tns-c1007949973-100">
<pre class="ng-tns-c1007949973-100"><code class="code-container formatted ng-tns-c1007949973-100" role="text" data-test-id="code-content">define(<span class="hljs-string">'DISABLE_WP_CRON'</span>, <span class="hljs-literal">true</span>);
</code></pre>
</div>
</div>
</div>
</li>
<li><b>Sunucudan Cron Job Ayarlayın:</b> Hosting panelinize (cPanel, Plesk vb.) girin ve &#8220;Cron Jobs&#8221; bölümünü bulun.</li>
<li><b>Yeni Bir Cron Job Oluşturun:</b> Belirli aralıklarla (örneğin saatte iki kez, yani her 30 dakikada bir) çalışacak şekilde ayarlayın. Çalıştırılacak komut alanına şunu yazın (siteniz.com&#8217;u kendi alan adınızla değiştirin):
<div class="code-block ng-tns-c1007949973-101 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwjb_dKPlZmQAxUAAAAAHQAAAAAQqwM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1007949973-101 ng-star-inserted"><span class="ng-tns-c1007949973-101">Bash</span></p>
<div class="buttons ng-tns-c1007949973-101 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1007949973-101">
<div class="animated-opacity ng-tns-c1007949973-101">
<pre class="ng-tns-c1007949973-101"><code class="code-container formatted ng-tns-c1007949973-101" role="text" data-test-id="code-content">wget -q -O - https://siteniz.com/wp-cron.php?doing_wp_cron &gt;/dev/null 2&gt;&amp;1
</code></pre>
</div>
</div>
</div>
<p>Bu komut, sunucunuzun kendisinin, belirlediğiniz aralıklarla <code>wp-cron.php</code> dosyasını tetiklemesini sağlar. Bu sayede zamanlanmış görevleriniz ziyaretçi trafiğinden bağımsız, düzenli ve kontrollü bir şekilde çalışır.</li>
</ol>
<p>&nbsp;</p>
<h4 id="3-heartbeat-apiyi-kontrol-altina-almak">3. Heartbeat API&#8217;yi Kontrol Altına Almak</h4>
<p>&nbsp;</p>
<p>Bu API&#8217;yi tamamen kapatmak bazı işlevleri bozabilir. En iyi çözüm, çalışma aralığını uzatmaktır.</p>
<ul>
<li><b>Eklenti ile Çözüm:</b> <b>Heartbeat Control by WP Rocket</b> gibi bir eklenti kurun. Bu eklenti, Heartbeat API&#8217;nin yönetici panelinde, site ön yüzünde ve yazı düzenleyicide hangi sıklıkla çalışacağını (örneğin 15 saniye yerine 120 saniyeye çıkarmak) veya tamamen devre dışı bırakılacağını ayarlamanıza olanak tanır. Genellikle aralığı 60-120 saniyeye çıkarmak çoğu site için güvenli ve etkilidir.</li>
</ul>
<p>&nbsp;</p>
<h4 id="4-gelismis-veritabani-optimizasyonu">4. Gelişmiş Veritabanı Optimizasyonu</h4>
<p>&nbsp;</p>
<ul>
<li><b><code>wp_options</code> Temizliği:</b> &#8220;Advanced Database Cleaner&#8221; gibi eklentiler, <code>wp_options</code> tablonuzdaki &#8220;yetim&#8221; kalmış (artık bir eklentiye ait olmayan) satırları bulmanıza yardımcı olur.</li>
<li><b>Autoload Verilerini Yönetin:</b> Aynı eklentilerle veya <code>SELECT option_name, LENGTH(option_value) FROM wp_options WHERE autoload = 'yes' ORDER BY LENGTH(option_value) DESC;</code> sorgusuyla en büyük autoload verilerini tespit edip, gereksiz olanları (<code>autoload='no'</code> olarak) değiştirebilirsiniz. <b>Uyarı:</b> Bu ileri düzey bir işlemdir ve sitenizi bozabilir. Ne yaptığınızdan emin değilseniz bir uzmana danışın.</li>
<li><b>Veritabanı Tablolarını Optimize Edin:</b> phpMyAdmin üzerinden tüm tabloları seçip &#8220;Onar&#8221; (Repair) ve &#8220;Optimize Et&#8221; (Optimize) komutlarını çalıştırmak, tablo verimliliğini artırabilir. WP-Optimize eklentisi bunu sizin için otomatik yapar.</li>
</ul>
<p>&nbsp;</p>
<h4 id="5-hosting-ve-altyapisal-iyilestirmeler">5. Hosting ve Altyapısal İyileştirmeler</h4>
<p>&nbsp;</p>
<ul>
<li><b>PHP Sürümünün Önemi:</b> PHP 7.4&#8217;ten PHP 8.1&#8217;e geçmek, aynı donanımda saniyede işlenebilen istek sayısını neredeyse iki katına çıkarabilir. Çünkü PHP 8.x sürümleri, <b>JIT (Just-In-Time) compiler</b> gibi verimliliği artıran devrimsel teknolojiler içerir. Bu, CPU&#8217;nun aynı işi daha az &#8220;düşünerek&#8221; yapmasını sağlar. Hosting panelinizden tek tıkla PHP sürümünüzü yükseltebilirsiniz.</li>
<li><b>Doğru Hosting Seçimi:</b> Paylaşımlı hosting, bir apartman dairesi gibidir; komşunuzun (aynı sunucudaki başka bir site) yarattığı gürültü (yüksek CPU kullanımı) sizi de etkiler. <b>VPS (Virtual Private Server)</b> ise size özel kaynaklar (garantili CPU çekirdeği ve RAM) sunan bir dubleks daire gibidir. Siteniz iş yapıyor ve düzenli trafik alıyorsa, bu yatırım kaçınılmazdır.</li>
</ul>
<p>&nbsp;</p>
<h3 id="sonuc-ve-eylem-plani">Sonuç ve Eylem Planı</h3>
<p>&nbsp;</p>
<p>Yüksek CPU kullanımı, tek bir butona basarak çözülecek bir sorun değil, bir dizi optimizasyon ve doğru altyapı seçiminin sonucudur.</p>
<ol start="1">
<li><b>Acil Durum (İlk 1 Saat):</b> Bir <b>önbellekleme</b> eklentisi (WP Rocket veya LiteSpeed Cache) kurup temel ayarlarını yapın. Bu, kanamayı durdurmak gibidir.</li>
<li><b>Teşhis (İlk Gün):</b> <b>Query Monitor</b> kurarak yavaş sorguları ve sorunlu eklentileri tespit edin. <b>Heartbeat Control</b> ile AJAX isteklerini yavaşlatın.</li>
<li><b>Kalıcı İyileştirme (İlk Hafta):</b> WP-Cron&#8217;u devre dışı bırakıp <b>gerçek cron job</b> kurun. Veritabanınızı <b>WP-Optimize</b> ile temizleyin. <b>PHP sürümünüzü</b> güncelleyin.</li>
<li><b>Geleceğe Yatırım (İlk Ay):</b> Eğer sorunlar devam ediyorsa, trafiğiniz ve ihtiyaçlarınız mevcut hosting paketinizi aşmış demektir. <b>VPS&#8217;e geçişi</b> ve <b>Redis gibi bir nesne önbellekleme</b> sistemini planlayın.</li>
</ol>
<p>Bu detaylı ve doğrulanmış adımları izleyerek, sunucunuzun &#8220;beynini&#8221; rahatlatabilir, sitenizi hızlandırabilir ve ziyaretçilerinize kesintisiz bir deneyim sunabilirsiniz.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/wordpress-cpu-kullanimi-masterclass-sunucunuzun-nefesini-kesen-sorunlara-derinlemesine-bakis-ve-kanitlanmis-cozum-yontemleri/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Hosting’te En Sık Hatalar ve Çözüm Akışları (cPanel • Plesk • CWP)</title>
		<link>https://saviorhost.com/blog/hosting-hatalari-cozum-cpanel-plesk-cwp/</link>
					<comments>https://saviorhost.com/blog/hosting-hatalari-cozum-cpanel-plesk-cwp/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Wed, 08 Oct 2025 10:05:59 +0000</pubDate>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Centos Web Panel]]></category>
		<category><![CDATA[Güvenlik]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Seo]]></category>
		<category><![CDATA[WHM/Cpanel]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://saviorhost.com/blog/?p=2135</guid>

					<description><![CDATA[Hosting’te en sık hatalar ve çözüm akışları: DNS, SSL/AutoSSL, 5xx, PHP limitleri, e-posta teslimi ve performans. cPanel, Plesk ve CWP için adım adım panel yolları ve komutlar.]]></description>
										<content:encoded><![CDATA[<p><strong>Özet (TL;DR):</strong> İlk 5 dakikada logları kontrol et → DNS kayıtlarını doğrula (A/AAAA, MX) → AutoSSL/Let’s Encrypt’i yenile → PHP limitlerini (upload/post/execution) güncelle → e-posta doğrulamalarını (SPF/DKIM/DMARC) tamamla. Plesk’te tıkanırsan <code>plesk repair all</code>; CWP’de AutoSSL ve PHP loglarını birlikte izle.</p>
<p>&nbsp;</p>
<h2 id="ilk-5-dakikalik-teshis">İlk 5 Dakikalık Teşhis</h2>
<ol>
<li><strong>Hata kayıtları:</strong> cPanel: <em>Metrics → Errors</em>; Plesk: alan adında <em>Logs</em>; CWP: HTTPD/Nginx, PHP, AutoSSL ve servis log’ları.</li>
<li><strong>DNS kontrolü:</strong> A/AAAA, MX, TXT (SPF/DKIM/DMARC)</li>
<li><strong>SSL/AutoSSL:</strong> Let’s Encrypt’i yenile; <strong>80/TCP</strong> erişilebilir olmalı (HTTP-01 doğrulaması).</li>
<li><strong>PHP limitleri:</strong> <code>upload_max_filesize</code> + <code>post_max_size</code> + <code>max_execution_time</code></li>
<li><strong>Mail teslimi:</strong> SPF/DKIM/DMARC + rDNS(PTR)</li>
</ol>
<h2 id="dns-alan-adi-hatalari">DNS / Alan Adı Hataları</h2>
<p><strong>Belirti:</strong> Site bazı bölgelerde açılıyor/hiç açılmıyor, e-postalar gelmiyor.</p>
<p><strong>Panel yolları:</strong> cPanel: <em>Domains → Zone Editor</em>; Plesk: <em>Websites &amp; Domains → DNS Settings</em>; CWP: <em>DNS Functions</em>.</p>
<pre><code>dig +short example.com A
dig +short example.com AAAA
dig +short example.com MX
dig +short NS example.com
</code></pre>
<p><em>Not:</em> NS değişiminde TTL/propagasyon 24–48 saat sürebilir.</p>
<h2 id="ssl-tls-https-ve-autossl">SSL/TLS (HTTPS) ve AutoSSL</h2>
<p><strong>Belirti:</strong> “Not secure”, “expired”, “hostname mismatch”, LE başarısız.<br />
<strong>Kritik:</strong> Let’s Encrypt <strong>HTTP-01</strong> yalnızca <strong>80/TCP</strong>’ten doğrular.</p>
<ul>
<li>cPanel/WHM: <strong>AutoSSL</strong> (sağlayıcı: Let’s Encrypt)</li>
<li>Plesk: <strong>Let’s Encrypt / SSL It!</strong> (site + mail + Plesk arayüzü)</li>
<li>CWP: Loglar → <code>/var/log/cwp/autossl.log</code>, <code>/root/.acme.sh/acme.sh.log</code></li>
</ul>
<p><strong>Öneri:</strong> HTTP→HTTPS yönlendirmesi kalsın; fakat <code>.well-known/acme-challenge</code> dosyalarına 80’den erişim bozulmasın.</p>
<pre><code>echo | openssl s_client -servername example.com -connect example.com:443 2&gt;/dev/null | openssl x509 -noout -issuer -subject -dates
</code></pre>
<h2 id="web-sunucusu-uygulama-hatalari-500-502-503-504">Web Sunucusu &amp; Uygulama Hataları (500/502/503/504)</h2>
<p><strong>İzlenecek yol:</strong> cPanel <em>Errors</em> → ip</p>
]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/hosting-hatalari-cozum-cpanel-plesk-cwp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🛡️ Paylaşımlı (Shared) Hosting Kullananlar İçin Pratik Güvenlik Rehberi</title>
		<link>https://saviorhost.com/blog/%f0%9f%9b%a1%ef%b8%8f-paylasimli-shared-hosting-kullananlar-icin-pratik-guvenlik-rehberi/</link>
					<comments>https://saviorhost.com/blog/%f0%9f%9b%a1%ef%b8%8f-paylasimli-shared-hosting-kullananlar-icin-pratik-guvenlik-rehberi/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Tue, 07 Oct 2025 10:36:06 +0000</pubDate>
				<category><![CDATA[Centos Web Panel]]></category>
		<category><![CDATA[Güvenlik]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[WHM/Cpanel]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://saviorhost.com/blog/?p=2130</guid>

					<description><![CDATA[10 adımda daha güvenli site + cPanel ve WordPress üzerinden uygulanabilir çözümler

Kime göre? Yeni–orta seviye kullanıcı, WordPress ağırlıklı, paylaşımlı hosting kullananlar.
Amaç: Hızlı uygulanan, hatayı çözen, arama niyeti yüksek konularla organik trafik toplamak.]]></description>
										<content:encoded><![CDATA[<p data-start="400" data-end="486"><strong data-start="400" data-end="486">10 adımda daha güvenli site + cPanel ve WordPress üzerinden uygulanabilir çözümler</strong></p>
<blockquote data-start="488" data-end="689">
<p data-start="490" data-end="689"><strong data-start="490" data-end="504">Kime göre?</strong> Yeni–orta seviye kullanıcı, WordPress ağırlıklı, paylaşımlı hosting kullananlar.<br data-start="585" data-end="588" /><strong data-start="590" data-end="599">Amaç:</strong> Hızlı uygulanan, hatayı çözen, arama niyeti yüksek konularla <strong data-start="661" data-end="679">organik trafik</strong> toplamak.</p>
</blockquote>
<hr data-start="691" data-end="694" />
<h2 data-start="696" data-end="742" id="%f0%9f%94%8d-neden-paylasimli-hostta-guvenlik-kritik">🔍 Neden paylaşımlı hostta güvenlik kritik?</h2>
<p data-start="743" data-end="1043">Aynı fiziksel sunucuda birçok site bir aradadır. İzolasyon zafiyetleri, <strong data-start="815" data-end="832">log dosyaları</strong> üzerinden bilgi sızdırma (<em data-start="859" data-end="873">log snooping</em>) ve <strong data-start="878" data-end="895">log zehirleme</strong> (<em data-start="897" data-end="912">log poisoning</em>) gibi saldırı yüzeyleri doğurabilir. Bu yüzden temel korumalar + doğru yapılandırma şarttır. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://arxiv.org/abs/1811.00923?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">arXiv</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<hr data-start="1045" data-end="1048" />
<h2 data-start="1050" data-end="1119" id="1-%f0%9f%a7%b1-modsecurity-waf-acik-mi-cpanel-%e2%86%92-security-%e2%86%92-modsecurity">1) 🧱 ModSecurity (WAF) açık mı? (cPanel → Security → ModSecurity)</h2>
<p data-start="1120" data-end="1417"><strong data-start="1120" data-end="1134">Ne sağlar?</strong> HTTP isteklerini imza/kurallarla filtreleyip yaygın web saldırılarını kırpar. cPanel’de her domain için aç/kapat yapılabilir; erişemiyorsan sağlayıcından etkinleştirmesini iste. <strong data-start="1313" data-end="1325">Kurallar</strong> için en yaygın set <strong data-start="1345" data-end="1374">OWASP Core Rule Set (CRS)</strong>’tir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/security/modsecurity/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<p data-start="1419" data-end="1615"><strong data-start="1419" data-end="1429">İpucu:</strong> WAF bazen yanlış pozitif üretebilir. Gerekirse alan adına özel kural istisnası veya geçici kapatma ile test edebilirsin (kalıcı kapatma önerilmez). <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/security/modsecurity/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span></span></span></a></span></span></p>
<hr data-start="1617" data-end="1620" />
<h2 data-start="1622" data-end="1662" id="2-%f0%9f%94%92-https-zorunlu-mumkunse-hsts">2) 🔒 HTTPS zorunlu + (mümkünse) HSTS</h2>
<p data-start="1663" data-end="1881">Trafiği şifreleyen <strong data-start="1682" data-end="1691">HTTPS</strong> hem güvenlik hem de SEO tarafında <strong data-start="1726" data-end="1750">onaylı bir sinyaldir</strong>. Sertifikan yoksa kur; varsa <strong data-start="1780" data-end="1794">HTTP→HTTPS</strong> yönlendirmesini zorunlu kıl ve HSTS değerlendir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developers.google.com/search/blog/2014/08/https-as-ranking-signal?hl=tr&amp;utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Google for Developers</span></span></span></a></span></span></p>
<hr data-start="1883" data-end="1886" />
<h2 data-start="1888" data-end="1939" id="3-%f0%9f%a7%b0-dosya-klasor-izinlerini-duzelt-wordpress">3) 🧰 Dosya/klasör izinlerini düzelt (WordPress)</h2>
<p data-start="1940" data-end="1959"><strong data-start="1940" data-end="1957">Genel pratik:</strong></p>
<ul data-start="1960" data-end="2186">
<li data-start="1960" data-end="1983">
<p data-start="1962" data-end="1983"><strong data-start="1962" data-end="1975">Dosyalar:</strong> <code data-start="1976" data-end="1981">644</code></p>
</li>
<li data-start="1984" data-end="2186">
<p data-start="1986" data-end="2186"><strong data-start="1986" data-end="2000">Klasörler:</strong> <code data-start="2001" data-end="2006">755</code><br data-start="2006" data-end="2009" />Bu kombinasyon, çoğu WordPress kurulumunda güvenli/çalışır denge sunar. Ayrıntılı izin rehberi için resmi geliştirici dokümantasyonuna bak. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developer.wordpress.org/advanced-administration/server/file-permissions/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">WordPress Developer Resources</span></span></span></a></span></span></p>
</li>
</ul>
<hr data-start="2188" data-end="2191" />
<h2 data-start="2193" data-end="2231" id="4-%f0%9f%a7%be-htaccess-ile-hizli-korumalar">4) 🧾 .htaccess ile hızlı korumalar</h2>
<p data-start="2233" data-end="2265"><strong data-start="2233" data-end="2263">a) Dizin listelemeyi kapat</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-apache"># public_html veya kök .htaccess<br />
Options -Indexes<br />
</code></div>
</div>
<p data-start="2330" data-end="2468">Bu, klasör içeriğinin listelenmesini durdurur; uygulanabilirliği <strong data-start="2395" data-end="2412">AllowOverride</strong> ayarına bağlıdır. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://httpd.apache.org/docs/current/howto/htaccess.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Apache HTTP Server</span></span></span></a></span></span></p>
<p data-start="2470" data-end="2509"><strong data-start="2470" data-end="2507">b) Hassas dosyaları web’den gizle</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-apache">&lt;FilesMatch "\.(env|ini|log|bak|sql|swp|conf)$"&gt;<br />
  Require all denied<br />
&lt;/FilesMatch&gt;<br />
</code></div>
</div>
<p data-start="2608" data-end="2749">Apache 2.4’te <code data-start="2622" data-end="2642">Require all denied</code> ile eşleşen dosyalar doğrudan sunulmaz. (Yine AllowOverride önemli.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://httpd.apache.org/docs/2.4/sections.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Apache HTTP Server</span></span></span></a></span></span></p>
<blockquote data-start="2751" data-end="2983">
<p data-start="2753" data-end="2983"><strong data-start="2753" data-end="2761">Not:</strong> .htaccess her ortamda her direktifi çalıştırmayabilir; sunucu yapılandırması belirleyicidir. (Apache, .htaccess’in nasıl ve ne zaman kullanılması gerektiğini resmi kılavuzda anlatır.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://httpd.apache.org/docs/current/howto/htaccess.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Apache HTTP Server</span></span></span></a></span></span></p>
</blockquote>
<hr data-start="2985" data-end="2988" />
<h2 data-start="2990" data-end="3028" id="5-%f0%9f%94%90-sftp-ssh-kullan-ftpyi-birak">5) 🔐 SFTP/SSH kullan; FTP’yi bırak</h2>
<p data-start="3029" data-end="3224"><strong data-start="3029" data-end="3036">FTP</strong> veriyi ve parolaları <strong data-start="3058" data-end="3074">şifrelemeden</strong> taşır. <strong data-start="3082" data-end="3094">SFTP/SSH</strong> ile güvenli kanaldan aktarım yap. WordPress güvenlik kılavuzları da <strong data-start="3163" data-end="3178">SSH/SFTP’yi</strong> önerir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developer.wordpress.org/advanced-administration/security/hardening/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">WordPress Developer Resources</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<hr data-start="3226" data-end="3229" />
<h2 data-start="3231" data-end="3289" id="6-%f0%9f%a7%a9-php-tarafinda-sinirlandirma-mumkun-olan-yerde">6) 🧩 PHP tarafında “sınırlandırma” (mümkün olan yerde)</h2>
<ul data-start="3291" data-end="3691">
<li data-start="3291" data-end="3496">
<p data-start="3293" data-end="3496"><strong data-start="3293" data-end="3311"><code data-start="3295" data-end="3309">open_basedir</code></strong>: PHP’nin erişebileceği dizinleri <strong data-start="3345" data-end="3357">sınırlar</strong> (siteler arası dolaşmayı önlemeye yardım eder). Etkinleştirme şekli hosting ortamına göre değişir. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.php.net/manual/en/ini.core.php?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">php.net</span></span></span></a></span></span></p>
</li>
<li data-start="3497" data-end="3691">
<p data-start="3499" data-end="3691"><strong data-start="3499" data-end="3522"><code data-start="3501" data-end="3520">disable_functions</code></strong>: <code data-start="3524" data-end="3530">exec</code>, <code data-start="3532" data-end="3544">shell_exec</code>, <code data-start="3546" data-end="3554">system</code> gibi <strong data-start="3560" data-end="3584">riskli fonksiyonları</strong> devre dışı bırakır (destek/etki PHP sürümü ve handler’a bağlıdır). <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.php.net/manual/tr/ini.core.php?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">php.net</span></span></span></a></span></span></p>
</li>
</ul>
<p data-start="3693" data-end="3926"><strong data-start="3693" data-end="3723">cPanel’de nereden bakarım?</strong> <code data-start="3724" data-end="3745">MultiPHP INI Editor</code> üzerinden alan adına tanımlı, <strong data-start="3776" data-end="3800">panelin izin verdiği</strong> yönergeleri düzenleyebilirsin. (Bazı direktifler paylaşımlı hostta kilitli olabilir.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/security/modsecurity/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span></span></span></a></span></span></p>
<hr data-start="3928" data-end="3931" />
<h2 data-start="3933" data-end="3994" id="7-%f0%9f%92%be-yedeklemeyi-otomatige-bagla-geri-yuklemeyi-test-et">7) 💾 Yedeklemeyi otomatiğe bağla + geri yüklemeyi test et</h2>
<p data-start="3995" data-end="4228">cPanel <strong data-start="4002" data-end="4019">Backup Wizard</strong> ile <strong data-start="4024" data-end="4031">tam</strong> veya <strong data-start="4037" data-end="4046">kısmi</strong> yedek alabilir, ihtiyaçta geri yükleyebilirsin. Gerçekten işe yarayıp yaramadığını <strong data-start="4130" data-end="4147">en az bir kez</strong> küçük bir geri yükleme testiyle doğrula. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/files/backup-wizard/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span></span></span></a></span></span></p>
<hr data-start="4230" data-end="4233" />
<h2 data-start="4235" data-end="4289" id="8-%f0%9f%9a%80-cdn-ekle-temel-hiz-saldiri-yuzeyi-azaltma">8) 🚀 CDN ekle (temel hız + saldırı yüzeyi azaltma)</h2>
<p data-start="4290" data-end="4555">CDN; içeriği kullanıcıya yakın POP’lardan ileterek <strong data-start="4341" data-end="4355">performans</strong> ve <strong data-start="4359" data-end="4378">erişilebilirlik</strong> kazandırır; çoğu CDN aynı zamanda temel DDoS/WAF katmanı da sunar. Başlangıç planları genelde yeterlidir. (Seçim marka bağımsız.) <em data-start="4510" data-end="4555">(Genel ilkedir; ürün isimleri değişebilir.)</em></p>
<hr data-start="4557" data-end="4560" />
<h2 data-start="4562" data-end="4603" id="9-%f0%9f%a7%b9-eklenti-tema-hijyeni-wordpress">9) 🧹 Eklenti/tema hijyeni (WordPress)</h2>
<ul data-start="4604" data-end="4873">
<li data-start="4604" data-end="4655">
<p data-start="4606" data-end="4655">Sadece <strong data-start="4613" data-end="4639">güvenilir kaynaklardan</strong> tema/eklenti.</p>
</li>
<li data-start="4656" data-end="4718">
<p data-start="4658" data-end="4718">Güncellemeleri geciktirme (major öncesinde mutlaka yedek).</p>
</li>
<li data-start="4719" data-end="4873">
<p data-start="4721" data-end="4873">Kullanmadıklarını <strong data-start="4739" data-end="4746">sil</strong> (pasif bırakma).<br data-start="4763" data-end="4766" />Bu tavsiyeler WordPress güvenlik kılavuzlarında temel başlıklardır. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developer.wordpress.org/advanced-administration/security/hardening/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">WordPress Developer Resources</span></span></span></a></span></span></p>
</li>
</ul>
<hr data-start="4875" data-end="4878" />
<h2 data-start="4880" data-end="4911" id="10-%f0%9f%91%80-izleme-ve-log-bilinci">10) 👀 İzleme ve log bilinci</h2>
<p data-start="4912" data-end="5164">Erişim/hatâ loglarını düzenli kontrol et (403, 404 patlamaları, sıra dışı POST istekleri). Paylaşımlı hostta <strong data-start="5021" data-end="5039">log izolasyonu</strong> yoksa risk büyür; sağlayıcından <strong data-start="5072" data-end="5114">her alan adının loglarının ayrıldığını</strong> teyit et. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://arxiv.org/abs/1811.00923?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">arXiv</span></span></span></a></span></span></p>
<hr data-start="5166" data-end="5169" />
<h2 data-start="5171" data-end="5210" id="%e2%9c%85-30-dakikalik-hizli-kontrol-listesi">✅ 30 Dakikalık Hızlı Kontrol Listesi</h2>
<ol data-start="5212" data-end="6118">
<li data-start="5212" data-end="5343">
<p data-start="5215" data-end="5343"><strong data-start="5215" data-end="5230">ModSecurity</strong>: cPanel → <em data-start="5241" data-end="5265">Security → ModSecurity</em> → <strong data-start="5268" data-end="5274">On</strong>. (Her domaini kontrol et.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/security/modsecurity/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span></span></span></a></span></span></p>
</li>
<li data-start="5344" data-end="5474">
<p data-start="5347" data-end="5474"><strong data-start="5347" data-end="5356">HTTPS</strong>: Sertifika kurulu mu? <strong data-start="5379" data-end="5393">HTTP→HTTPS</strong> yönlendirme aktif mi? (SEO + güvenlik) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developers.google.com/search/blog/2014/08/https-as-ranking-signal?hl=tr&amp;utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Google for Developers</span></span></span></a></span></span></p>
</li>
<li data-start="5475" data-end="5660">
<p data-start="5478" data-end="5494"><strong data-start="5478" data-end="5491">.htaccess</strong>:</p>
<ul data-start="5498" data-end="5660">
<li data-start="5498" data-end="5566">
<p data-start="5500" data-end="5566"><code data-start="5500" data-end="5518">Options -Indexes</code> ekle. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://httpd.apache.org/docs/current/howto/htaccess.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Apache HTTP Server</span></span></span></a></span></span></p>
</li>
<li data-start="5570" data-end="5660">
<p data-start="5572" data-end="5660"><code data-start="5572" data-end="5584">FilesMatch</code> ile <code data-start="5589" data-end="5605">.env/.ini/.log</code> vb. engelle. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://httpd.apache.org/docs/2.4/sections.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Apache HTTP Server</span></span></span></a></span></span></p>
</li>
</ul>
</li>
<li data-start="5661" data-end="5779">
<p data-start="5664" data-end="5779"><strong data-start="5664" data-end="5675">İzinler</strong>: Dosyalar <code data-start="5686" data-end="5691">644</code>, klasörler <code data-start="5703" data-end="5708">755</code> mi? (WordPress resmî kaynak) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developer.wordpress.org/advanced-administration/server/file-permissions/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">WordPress Developer Resources</span></span></span></a></span></span></p>
</li>
<li data-start="5780" data-end="5862">
<p data-start="5783" data-end="5862"><strong data-start="5783" data-end="5791">SFTP</strong>: FTP yerine SFTP/SSH kullan. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.wordfence.com/learn/how-to-harden-wordpress-sites/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">wordfence.com</span></span></span></a></span></span></p>
</li>
<li data-start="5863" data-end="5989">
<p data-start="5866" data-end="5989"><strong data-start="5866" data-end="5883">PHP sınırları</strong>: (Varsa) <code data-start="5893" data-end="5907">open_basedir</code> ve <code data-start="5911" data-end="5930">disable_functions</code> durumunu incele. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.php.net/manual/en/ini.core.php?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">php.net</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
<li data-start="5990" data-end="6118">
<p data-start="5993" data-end="6118"><strong data-start="5993" data-end="6002">Yedek</strong>: cPanel Backup Wizard ile kısmi yedek al; küçük bir geri yükleme testi yap. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/files/backup-wizard/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span></span></span></a></span></span></p>
</li>
</ol>
<hr data-start="6120" data-end="6123" />
<h2 data-start="6125" data-end="6178" id="%f0%9f%a7%aa-sik-karsilasilan-mini-sorunlar-hizli-cozumler">🧪 Sık karşılaşılan mini sorunlar &amp; hızlı çözümler</h2>
<p data-start="6180" data-end="6398"><strong data-start="6180" data-end="6226">“Dizinlerim listeleniyor, herkes görüyor!”</strong><br data-start="6226" data-end="6229" /><code data-start="6229" data-end="6240">.htaccess</code> dosyana <code data-start="6249" data-end="6267">Options -Indexes</code> ekle; sonuç görmüyorsan sunucuda <strong data-start="6301" data-end="6318">AllowOverride</strong> kısıtlı olabilir (destekle kontrol et). <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://httpd.apache.org/docs/current/howto/htaccess.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Apache HTTP Server</span></span></span></a></span></span></p>
<p data-start="6400" data-end="6629"><strong data-start="6400" data-end="6435">“WAF kapatınca hızlanır mıyım?”</strong><br data-start="6435" data-end="6438" />Genelde <strong data-start="6446" data-end="6457">kapatma</strong>; ModSecurity + <strong data-start="6473" data-end="6486">OWASP CRS</strong> yaygın saldırıları daha başta kırpar. Hata yaşıyorsan kural istisnası veya domain bazlı ince ayar yap. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/security/modsecurity/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
<p data-start="6631" data-end="6748"><strong data-start="6631" data-end="6652">“FTP güvenli mi?”</strong><br data-start="6652" data-end="6655" />Hayır, parolalar şifresiz gider. <strong data-start="6688" data-end="6700">SFTP/SSH</strong> kullan. <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://www.wordfence.com/learn/how-to-harden-wordpress-sites/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">wordfence.com</span></span></span></a></span></span></p>
<hr data-start="6750" data-end="6753" />
<h2 data-start="6755" data-end="6794" id="%f0%9f%93%8e-kod-sablonlari-kopyala-yapistir">📎 Kod şablonları (kopyala–yapıştır)</h2>
<p data-start="6796" data-end="6862"><strong data-start="6796" data-end="6862">.htaccess – Dizin listelemeyi kapat + hassas dosyaları engelle</strong></p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-apache"># 1) Dizin listeleme kapalı<br />
Options -Indexes</p>
<p># 2) Hassas uzantıları engelle<br />
&lt;FilesMatch "\.(env|ini|log|bak|sql|swp|conf)$"&gt;<br />
  Require all denied<br />
&lt;/FilesMatch&gt;<br />
</code></div>
</div>
<p data-start="7038" data-end="7146">(Apache 2.4 söz dizimi; AllowOverride = All değilse çalışmayabilir.) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://httpd.apache.org/docs/2.4/sections.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Apache HTTP Server</span></span></span></a></span></span></p>
<p data-start="7148" data-end="7191"><strong data-start="7148" data-end="7189">wp-content/uploads için örnek izinler</strong></p>
<ul data-start="7192" data-end="7271">
<li data-start="7192" data-end="7212">
<p data-start="7194" data-end="7212">Klasörler: <code data-start="7205" data-end="7210">755</code></p>
</li>
<li data-start="7213" data-end="7271">
<p data-start="7215" data-end="7271">Dosyalar: <code data-start="7225" data-end="7230">644</code> <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developer.wordpress.org/advanced-administration/server/file-permissions/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">WordPress Developer Resources</span></span></span></a></span></span></p>
</li>
</ul>
<hr data-start="7273" data-end="7276" />
<h2 data-start="7278" data-end="7319" id="%f0%9f%93%9a-kaynaklar-guvenilir-dokumantasyon">📚 Kaynaklar (Güvenilir dokümantasyon)</h2>
<ul data-start="7320" data-end="8084">
<li data-start="7320" data-end="7431">
<p data-start="7322" data-end="7431"><strong data-start="7322" data-end="7389">cPanel – ModSecurity (kullanıcı arayüzü &amp; WHM kurulumu notları)</strong> <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/security/modsecurity/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span></span></span></a></span></span></p>
</li>
<li data-start="7432" data-end="7521">
<p data-start="7434" data-end="7521"><strong data-start="7434" data-end="7479">OWASP Core Rule Set (CRS) – proje sayfası</strong> <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://owasp.org/www-project-modsecurity-core-rule-set/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">owasp.org</span></span></span></a></span></span></p>
</li>
<li data-start="7522" data-end="7624">
<p data-start="7524" data-end="7624"><strong data-start="7524" data-end="7582">Google – “HTTPS bir sıralama sinyali” duyurusu (resmî)</strong> <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developers.google.com/search/blog/2014/08/https-as-ranking-signal?hl=tr&amp;utm_source=chatgpt.com" target="_blank" rel="noopener nofollow"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Google for Developers</span></span></span></a></span></span></p>
</li>
<li data-start="7625" data-end="7709">
<p data-start="7627" data-end="7709"><strong data-start="7627" data-end="7667">WordPress Developer – Dosya izinleri</strong> <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developer.wordpress.org/advanced-administration/server/file-permissions/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">WordPress Developer Resources</span></span></span></a></span></span></p>
</li>
<li data-start="7710" data-end="7780">
<p data-start="7712" data-end="7780"><strong data-start="7712" data-end="7738">cPanel – Backup Wizard</strong> <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://docs.cpanel.net/cpanel/files/backup-wizard/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">cPanel &amp; WHM Documentation</span></span></span></a></span></span></p>
</li>
<li data-start="7781" data-end="7875">
<p data-start="7783" data-end="7875"><strong data-start="7783" data-end="7833">WordPress Hardening (SSH/SFTP önerileri dahil)</strong> <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://developer.wordpress.org/advanced-administration/security/hardening/?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between overflow-hidden"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">WordPress Developer Resources</span></span></span></a></span></span></p>
</li>
<li data-start="7876" data-end="7968">
<p data-start="7878" data-end="7968"><strong data-start="7878" data-end="7926">Apache – .htaccess ve yapılandırma bölümleri</strong> <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://httpd.apache.org/docs/current/howto/htaccess.html?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">Apache HTTP Server</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
<li data-start="7969" data-end="8084">
<p data-start="7971" data-end="8084"><strong data-start="7971" data-end="7983">Akademik</strong> – Paylaşımlı hosting’te log saldırıları (snooping/poisoning) <span class="" data-state="closed"><span class="ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]" data-testid="webpage-citation-pill"><a class="flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!" href="https://arxiv.org/abs/1811.00923?utm_source=saviorhost.com" target="_blank" rel="noopener"><span class="relative start-0 bottom-0 flex h-full w-full items-center"><span class="flex h-4 w-full items-center justify-between"><span class="max-w-[15ch] grow truncate overflow-hidden text-center">arXiv</span><span class="-me-1 flex h-full items-center rounded-full px-1 text-[#8F8F8F]">+1</span></span></span></a></span></span></p>
</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/%f0%9f%9b%a1%ef%b8%8f-paylasimli-shared-hosting-kullananlar-icin-pratik-guvenlik-rehberi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>yum update &#8211;nobest: Linux Sunucularda Güncelleme Sorunlarına Pratik Çözüm</title>
		<link>https://saviorhost.com/blog/yum-update-nobest-linux-sunucularda-guncelleme-sorunlarina-pratik-cozum/</link>
					<comments>https://saviorhost.com/blog/yum-update-nobest-linux-sunucularda-guncelleme-sorunlarina-pratik-cozum/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Thu, 04 Sep 2025 08:56:11 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Centos 7]]></category>
		<category><![CDATA[Centos Web Panel]]></category>
		<category><![CDATA[Güvenlik]]></category>
		<category><![CDATA[Nginx]]></category>
		<guid isPermaLink="false">https://saviorhost.com/blog/?p=2088</guid>

					<description><![CDATA[yum update --nobest Nedir? Linux sistemlerinde paket yönetimi sırasında bazen güncelleme hatalarıyla karşılaşabilirsiniz. Özellikle CentOS, AlmaLinux, Rocky Linux gibi RHEL...]]></description>
										<content:encoded><![CDATA[<h2 data-start="661" data-end="694" id="yum-update-nobest-nedir"><code data-start="664" data-end="685">yum update --nobest</code> Nedir?</h2>
<p data-start="696" data-end="970">Linux sistemlerinde paket yönetimi sırasında bazen güncelleme hatalarıyla karşılaşabilirsiniz. Özellikle CentOS, AlmaLinux, Rocky Linux gibi RHEL tabanlı dağıtımlarda kullanılan <strong data-start="874" data-end="881">yum</strong> paket yöneticisi, en güncel sürümleri yüklemek ister. Ancak bu her zaman mümkün olmaz.</p>
<p data-start="972" data-end="1085">İşte bu durumda <code data-start="988" data-end="1009">yum update --nobest</code>, <strong data-start="1011" data-end="1068">uyumlu sürümlere güncelleme yaparak hataları aşmanıza</strong> yardımcı olur.</p>
<hr data-start="1087" data-end="1090" />
<h2 data-start="1092" data-end="1138" id="normal-yum-update-neden-hata-verebilir">Normal <code data-start="1102" data-end="1114">yum update</code> Neden Hata Verebilir?</h2>
<p data-start="1140" data-end="1169">Standart güncelleme komutu:</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">sudo yum update<br />
</code></div>
</div>
<p data-start="1202" data-end="1272">Bu komut en güncel paketleri kurmaya çalışır. Ancak bazı durumlarda:</p>
<ul data-start="1274" data-end="1423">
<li data-start="1274" data-end="1338">
<p data-start="1276" data-end="1338"><strong data-start="1276" data-end="1300">Bağımlılık sorunları</strong> (dependency conflicts) yaşanabilir.</p>
</li>
<li data-start="1339" data-end="1375">
<p data-start="1341" data-end="1375">Yeni sürüm <strong data-start="1352" data-end="1363">uyumsuz</strong> olabilir.</p>
</li>
<li data-start="1376" data-end="1423">
<p data-start="1378" data-end="1423">Üretim ortamında <strong data-start="1395" data-end="1408">stabilite</strong> bozulabilir.</p>
</li>
</ul>
<p data-start="1425" data-end="1446">Örnek hata çıktısı:</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre!"><span class="hljs-attr">Error: Package:</span> <span class="hljs-string">xyz-3.0.1-1.el8.x86_64</span> <span class="hljs-string">(updates)</span><br />
           <span class="hljs-attr">Requires:</span> <span class="hljs-string">libabc</span> <span class="hljs-string">&gt;=</span> <span class="hljs-number">2.0</span><br />
           <span class="hljs-attr">Installed:</span> <span class="hljs-string">libabc-1.9-1.el8.x86_64</span> <span class="hljs-string">(@base)</span><br />
</code></div>
</div>
<hr data-start="1597" data-end="1600" />
<h2 data-start="1602" data-end="1638" id="yum-update-nobest-ile-cozum"><code data-start="1605" data-end="1626">yum update --nobest</code> ile Çözüm</h2>
<p data-start="1640" data-end="1648">Komut:</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">sudo yum update --nobest<br />
</code></div>
</div>
<p data-start="1690" data-end="1715">Bu parametre sayesinde:</p>
<ul data-start="1717" data-end="1834">
<li data-start="1717" data-end="1758">
<p data-start="1719" data-end="1758"><strong data-start="1719" data-end="1756">En güncel sürüm zorunlu tutulmaz.</strong></p>
</li>
<li data-start="1759" data-end="1798">
<p data-start="1761" data-end="1798">Uyumlu olan en uygun sürüm seçilir.</p>
</li>
<li data-start="1799" data-end="1834">
<p data-start="1801" data-end="1834">Güncellemeler tamamen kesilmez.</p>
</li>
</ul>
<hr data-start="1836" data-end="1839" />
<h2 data-start="1841" data-end="1866" id="kullanim-senaryolari">Kullanım Senaryoları</h2>
<h3 data-start="1868" data-end="1897" id="1-uretim-sunucularinda">1. Üretim Sunucularında</h3>
<p data-start="1898" data-end="2004">En güncel sürüm bağımlılık hatası verirse, <code data-start="1941" data-end="1951">--nobest</code> sayesinde bir alt ama stabil sürüm kullanılabilir.</p>
<h3 data-start="2006" data-end="2035" id="2-gelistirme-ortaminda">2. Geliştirme Ortamında</h3>
<p data-start="2036" data-end="2147">Yeni teknolojiler denerken tüm sistem güncellemeleri sırasında çıkabilecek hatalar <code data-start="2119" data-end="2129">--nobest</code> ile aşılabilir.</p>
<hr data-start="2149" data-end="2152" />
<h2 data-start="2154" data-end="2170" id="avantajlari">Avantajları</h2>
<ul data-start="2172" data-end="2289">
<li data-start="2172" data-end="2212">
<p data-start="2174" data-end="2212">✅ Güncellemeler tamamen engellenmez.</p>
</li>
<li data-start="2213" data-end="2252">
<p data-start="2215" data-end="2252">✅ Daha <strong data-start="2222" data-end="2231">esnek</strong> güncelleme sağlar.</p>
</li>
<li data-start="2253" data-end="2289">
<p data-start="2255" data-end="2289">✅ Bağımlılık hatalarını azaltır.</p>
</li>
</ul>
<hr data-start="2291" data-end="2294" />
<h2 data-start="2296" data-end="2315" id="dezavantajlari">Dezavantajları</h2>
<ul data-start="2317" data-end="2455">
<li data-start="2317" data-end="2367">
<p data-start="2319" data-end="2367">⚠️ Sistem her zaman <strong data-start="2339" data-end="2352">en güncel</strong> olmayabilir.</p>
</li>
<li data-start="2368" data-end="2405">
<p data-start="2370" data-end="2405">⚠️ Güvenlik yamaları gecikebilir.</p>
</li>
<li data-start="2406" data-end="2455">
<p data-start="2408" data-end="2455">⚠️ Uzun vadede uyumluluk sorunları çıkabilir.</p>
</li>
</ul>
<hr data-start="2457" data-end="2460" />
<h2 data-start="2462" data-end="2472" id="sonuc">Sonuç</h2>
<p data-start="2474" data-end="2658"><code data-start="2474" data-end="2495">yum update --nobest</code>, <strong data-start="2497" data-end="2580">Linux güncellemelerinde bağımlılık hatalarını çözmek için pratik bir yöntemdir.</strong> Ancak güvenlik ve uzun vadeli uyumluluk açısından dikkatli kullanılmalıdır.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/yum-update-nobest-linux-sunucularda-guncelleme-sorunlarina-pratik-cozum/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CentOS Web Panel için Nginx ile HTTP/3 ve QUIC Nasıl Aktif Edilir?</title>
		<link>https://saviorhost.com/blog/centos-web-panel-icin-nginx-ile-http-3-ve-quic-nasil-aktif-edilir/</link>
					<comments>https://saviorhost.com/blog/centos-web-panel-icin-nginx-ile-http-3-ve-quic-nasil-aktif-edilir/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Wed, 25 Sep 2024 08:23:12 +0000</pubDate>
				<category><![CDATA[Centos Web Panel]]></category>
		<category><![CDATA[Nginx]]></category>
		<guid isPermaLink="false">https://saviorhost.com/?p=2000</guid>

					<description><![CDATA[HTTP/3, internet bağlantı hızını artıran QUIC protokolü ile birlikte gelir. CentOS Web Panel kullanarak Nginx 1.26.1 üzerinde tüm sitelerinizde HTTP/3...]]></description>
										<content:encoded><![CDATA[<p>HTTP/3, internet bağlantı hızını artıran QUIC protokolü ile birlikte gelir. CentOS Web Panel kullanarak Nginx 1.26.1 üzerinde tüm sitelerinizde HTTP/3 ve QUIC&#8217;i etkinleştirebilir ve aynı zamanda birden fazla siteyi yönetmek için virtualhost özelliğini ekleyebilirsiniz. Bu makalede, bu adımları detaylı bir şekilde açıklıyoruz.</p>
<h4 id="1-gereksinimler-ve-on-hazirlik">1. Gereksinimler ve Ön Hazırlık</h4>
<ul>
<li><strong>CentOS 7/8</strong> kullanıyor olmanız.</li>
<li><strong>Nginx 1.26.1</strong> kaynağı.</li>
<li><strong>SSL sertifikaları</strong> (örneğin Let&#8217;s Encrypt).</li>
<li><strong>Virtualhost</strong> ile birden fazla siteyi yönetmek için DNS ayarlarının yapılmış olması.</li>
</ul>
<h4 id="2-nginx-1-26-1i-quic-destegi-ile-derleme">2. Nginx 1.26.1’i QUIC Desteği ile Derleme</h4>
<p>Varsayılan Nginx sürümünde QUIC ve HTTP/3 desteği bulunmaz. Bu yüzden Nginx&#8217;i yeniden derleyeceğiz.</p>
<h5 id="gerekli-uygulamalari-kurun">Gerekli uygulamaları Kurun:</h5>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-bash">yum install gcc pcre-devel zlib-devel openssl-devel libatomic_ops-devel cmake</code></div>
</div>
</div>
</div>
<h5 id="open-ssl-kutuphanesini-indirin">Open SSL Kütüphanesini İndirin:</h5>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">rm -rf openssl*<br />
wget https://www.openssl.org/source/openssl-3.0.12.tar.gz -O openssl.tar.gz<br />
tar -xf openssl.tar.gz<br />
rm -rf openssl.tar.gz<br />
mv openssl-* openssl<br />
./config --prefix=/usr/local/opensslso --openssldir=/usr/local/opensslso zlib shared<br />
make &amp;&amp; make install<br />
</code></div>
</div>
<h5 id="nginx-1-26-1-kaynak-kodunu-indirin-ve-derleyin">Nginx 1.26.1 Kaynak Kodunu İndirin ve Derleyin:</h5>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="flex items-center text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9"></div>
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-bash">wget https://nginx.org/download/nginx-1.26.1.tar.gz</code></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash"><br />
tar -zxvf nginx-1.26.1.tar.gz<br />
<span class="hljs-built_in">cd</span> nginx-1.26.1/<br />
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx --build=CentOS --builddir=nginx-custom --with-select_module --with-poll_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --with-mail=dynamic --with-mail_ssl_module --with-stream=dynamic --with-stream_ssl_module --with-stream_realip_module --with-stream_geoip_module=dynamic --with-stream_ssl_preread_module --with-compat --with-pcre=/usr/local/src/pcre-8.45 --with-pcre-jit --with-zlib=/usr/local/src/zlib --with-openssl=/usr/local/src/openssl --with-openssl-opt=no-nextprotoneg --with-debug --with-http_v3_module --build="quiche-$(git --git-dir=../quiche/.git rev-parse --short HEAD)"<br />
make<br />
make install<br />
</code></div>
</div>
<h4 id="3-nginx-virtualhost-yapilandirmasi-ve-http-3-etkinlestirme">3. Nginx VirtualHost Yapılandırması ve HTTP/3 Etkinleştirme</h4>
<p>Her bir site için virtualhost yapılandırması oluşturup, HTTP/3 desteğini ekleyeceğiz.</p>
<h5 id="nginx-ana-yapilandirma-dosyasini-duzenleyin">Nginx Ana Yapılandırma Dosyasını Düzenleyin:</h5>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-bash">nano /etc/nginx/nginx.conf</code></div>
</div>
</div>
</div>
<p>Yapılandırma dosyasına şu satırları ekleyin:</p>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-nginx">http {</code></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-nginx"><br />
include       mime.types;<br />
default_type  application/octet-stream;<br />
sendfile        on;<br />
keepalive_timeout  65;<br />
include /etc/nginx/conf.d/*.conf;<br />
}<br />
</code></div>
</div>
<h5 id="virtualhost-yapilandirmasini-ekleyin">VirtualHost Yapılandırmasını Ekleyin:</h5>
<p>CWP Panel üzerinden webserver conf editör bölümüne gelip /etc/nginx/conf.d/vhosts/ bölümüne gelip ilgili domainde değişikliği yapabilirsiniz.</p>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-bash">nano /etc/nginx/conf.d/yourdomain.com.conf</code></div>
</div>
</div>
</div>
<p>Aşağıdaki yapılandırmayı ekleyin:</p>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-nginx"><code class="!whitespace-pre hljs language-nginx">server {</code></code></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-nginx"><code class="!whitespace-pre hljs language-nginx">listen 127.0.0.1:443 ssl;</code></code></div>
</div>
<div dir="ltr">Ip adresi sizden değişiklik gösterir. Altına ya da üstüne ;</div>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-nginx"><code class="!whitespace-pre hljs language-nginx"><br />
listen 168.119.80.200:443 quic;</code></code></div>
</div>
<div dir="ltr"></div>
<div dir="ltr">Şu kodu bulun;</div>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div dir="ltr"></div>
<div class="overflow-y-auto p-4" dir="ltr">
<div><code>}</code></div>
<div><code>location @backend {</code></div>
<div><code>internal;</code></div>
<div><code>proxy_pass http://168.119.80.200:8181;</code></div>
<div><code>include proxy.inc;</code></div>
</div>
</div>
<div></div>
<div>Hemen üstüne şu kodu girin;</div>
<div></div>
<div><code># used to advertise the availability of HTTP/3</code><br />
<code>add_header Alt-Svc 'h3=":443"; ma=86400';</code></div>
<h5 id="guvenlik-duvari-ayarlari">Güvenlik Duvarı Ayarları:</h5>
<p>QUIC UDP üzerinden çalıştığı için aşağıdaki komutlarla 443 UDP portunu açın:</p>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-bash">firewall-cmd --permanent --add-port=443/udp<br />
firewall-cmd --reload</code></div>
</div>
</div>
</div>
<h5 id="nginxi-yeniden-baslatin">Nginx’i Yeniden Başlatın:</h5>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-bash">nginx -t</code></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash"><br />
systemctl restart nginx<br />
</code></div>
</div>
<h4 id="4-http-3-ve-quic-dogrulamasi">4. HTTP/3 ve QUIC Doğrulaması</h4>
<p>HTTP/3’ün etkin olduğunu doğrulamak için şu komutu kullanabilirsiniz:</p>
<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative">
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-main-surface-secondary px-2 font-sans text-xs text-token-text-secondary"><code class="!whitespace-pre hljs language-bash">curl -I -s --http3 https://saviorhost.com</code></div>
</div>
</div>
</div>
<p>Tarayıcı geliştirici araçlarını kullanarak <code>Alt-Svc</code> başlıklarını kontrol ederek de HTTP/3&#8217;ün etkin olup olmadığını görebilirsiniz.</p>
<h3 id="sonuc">Sonuç</h3>
<p>Bu adımlarla CentOS Web Panel üzerinde Nginx 1.26.1’i HTTP/3 ve QUIC desteği ile derleyip, virtualhost&#8217;larla tüm sitelerde etkinleştirdiniz. Bu yapılandırma, sitelerinizin hız ve performansını önemli ölçüde artıracaktır.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/centos-web-panel-icin-nginx-ile-http-3-ve-quic-nasil-aktif-edilir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
