{"id":1468,"date":"2025-11-07T12:44:59","date_gmt":"2025-11-07T09:44:59","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/wordpress-medyani-s3e-tasiyalim-mi-cdn-imzali-url-ve-onbellek-gecersizlestirme-adim-adim\/"},"modified":"2025-11-07T12:44:59","modified_gmt":"2025-11-07T09:44:59","slug":"wordpress-medyani-s3e-tasiyalim-mi-cdn-imzali-url-ve-onbellek-gecersizlestirme-adim-adim","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/wordpress-medyani-s3e-tasiyalim-mi-cdn-imzali-url-ve-onbellek-gecersizlestirme-adim-adim\/","title":{"rendered":"WordPress Medyan\u0131 S3\u2019e Ta\u015f\u0131yal\u0131m m\u0131? CDN, \u0130mzal\u0131 URL ve \u00d6nbellek Ge\u00e7ersizle\u015ftirme Ad\u0131m Ad\u0131m"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#Bir_Sabah_Medya_Klasorunun_Kapisini_Caldigim_Gun\"><span class=\"toc_number toc_depth_1\">1<\/span> Bir Sabah Medya Klas\u00f6r\u00fcn\u00fcn Kap\u0131s\u0131n\u0131 \u00c7ald\u0131\u011f\u0131m G\u00fcn<\/a><\/li><li><a href=\"#Neden_S3_Uyumlu_Depolama_Ne_Kazaniriz_Neyi_Fark_Ederiz\"><span class=\"toc_number toc_depth_1\">2<\/span> Neden S3 Uyumlu Depolama? Ne Kazan\u0131r\u0131z, Neyi Fark Ederiz?<\/a><\/li><li><a href=\"#Hazirlik_Kova_Anahtarlar_Izinler_ve_CORS\"><span class=\"toc_number toc_depth_1\">3<\/span> Haz\u0131rl\u0131k: Kova, Anahtarlar, \u0130zinler ve CORS<\/a><ul><li><a href=\"#Bucketi_Kurarken_Bir_Not_Defteri_Ac\"><span class=\"toc_number toc_depth_2\">3.1<\/span> Bucket\u2019\u0131 Kurarken Bir Not Defteri A\u00e7<\/a><\/li><li><a href=\"#Izinler_ve_Surumleme\"><span class=\"toc_number toc_depth_2\">3.2<\/span> \u0130zinler ve S\u00fcr\u00fcmleme<\/a><\/li><li><a href=\"#CORS_Ayarini_Unutma\"><span class=\"toc_number toc_depth_2\">3.3<\/span> CORS Ayar\u0131n\u0131 Unutma<\/a><\/li><\/ul><\/li><li><a href=\"#WordPress_Tarafi_Eklenti_Secimi_Yukleme_Kurallari_ve_URLler\"><span class=\"toc_number toc_depth_1\">4<\/span> WordPress Taraf\u0131: Eklenti Se\u00e7imi, Y\u00fckleme Kurallar\u0131 ve URL\u2019ler<\/a><ul><li><a href=\"#Hangi_Eklenti_Asil_Onemli_Olan_Ayar_Disiplini\"><span class=\"toc_number toc_depth_2\">4.1<\/span> Hangi Eklenti? As\u0131l \u00d6nemli Olan Ayar Disiplini<\/a><\/li><li><a href=\"#Orijinali_Sunucuda_Tutmak_mi_Tutmamak_mi\"><span class=\"toc_number toc_depth_2\">4.2<\/span> Orijinali Sunucuda Tutmak m\u0131, Tutmamak m\u0131?<\/a><\/li><li><a href=\"#URLlerinizi_Guzelce_Yenileyin\"><span class=\"toc_number toc_depth_2\">4.3<\/span> URL\u2019lerinizi G\u00fczelce Yenileyin<\/a><\/li><\/ul><\/li><li><a href=\"#CDN_Baglamak_DNS_HTTPS_ve_Kenar_Onbellegi\"><span class=\"toc_number toc_depth_1\">5<\/span> CDN Ba\u011flamak: DNS, HTTPS ve Kenar \u00d6nbelle\u011fi<\/a><ul><li><a href=\"#CDNi_Ortaga_Donusturmek\"><span class=\"toc_number toc_depth_2\">5.1<\/span> CDN\u2019i Orta\u011fa D\u00f6n\u00fc\u015ft\u00fcrmek<\/a><\/li><li><a href=\"#Cache-Control_ve_Uzun_Omurlu_Onbellek\"><span class=\"toc_number toc_depth_2\">5.2<\/span> Cache-Control ve Uzun \u00d6m\u00fcrl\u00fc \u00d6nbellek<\/a><\/li><li><a href=\"#Guvenlik_ve_Sikistirma\"><span class=\"toc_number toc_depth_2\">5.3<\/span> G\u00fcvenlik ve S\u0131k\u0131\u015ft\u0131rma<\/a><\/li><\/ul><\/li><li><a href=\"#Imzali_URL_Ozel_Icerigi_Kibarca_Koruma\"><span class=\"toc_number toc_depth_1\">6<\/span> \u0130mzal\u0131 URL: \u00d6zel \u0130\u00e7eri\u011fi Kibarca Koruma<\/a><ul><li><a href=\"#Hangi_Senaryoda_Imzali_URL\"><span class=\"toc_number toc_depth_2\">6.1<\/span> Hangi Senaryoda \u0130mzal\u0131 URL?<\/a><\/li><li><a href=\"#CDN_Imzali_URLlere_Kucuk_Bir_Pencere\"><span class=\"toc_number toc_depth_2\">6.2<\/span> CDN \u0130mzal\u0131 URL\u2019lere K\u00fc\u00e7\u00fck Bir Pencere<\/a><\/li><li><a href=\"#Toparlayici_Ipuclari\"><span class=\"toc_number toc_depth_2\">6.3<\/span> Toparlay\u0131c\u0131 \u0130pu\u00e7lar\u0131<\/a><\/li><\/ul><\/li><li><a href=\"#Onbellek_Gecersizlestirme_Dosyayi_Guncelledim_Neden_Hala_Eski\"><span class=\"toc_number toc_depth_1\">7<\/span> \u00d6nbellek Ge\u00e7ersizle\u015ftirme: \u201cDosyay\u0131 G\u00fcncelledim, Neden H\u00e2l\u00e2 Eski?\u201d<\/a><ul><li><a href=\"#Surumleme_Dosya_Adi_ve_Hash\"><span class=\"toc_number toc_depth_2\">7.1<\/span> S\u00fcr\u00fcmleme, Dosya Ad\u0131 ve Hash<\/a><\/li><li><a href=\"#CDN_Invalidationin_Yeri\"><span class=\"toc_number toc_depth_2\">7.2<\/span> CDN Invalidation\u2019\u0131n Yeri<\/a><\/li><li><a href=\"#WordPress_Tam_Sayfa_Onbellegiyle_Uyumu\"><span class=\"toc_number toc_depth_2\">7.3<\/span> WordPress Tam Sayfa \u00d6nbelle\u011fiyle Uyumu<\/a><\/li><\/ul><\/li><li><a href=\"#Adim_Adim_Tasima_Korkmadan_Kucuk_Denemelerle\"><span class=\"toc_number toc_depth_1\">8<\/span> Ad\u0131m Ad\u0131m Ta\u015f\u0131ma: Korkmadan, K\u00fc\u00e7\u00fck Denemelerle<\/a><ul><li><a href=\"#Once_Staging_Sonra_Uretim\"><span class=\"toc_number toc_depth_2\">8.1<\/span> \u00d6nce Staging, Sonra \u00dcretim<\/a><\/li><li><a href=\"#Toplu_Senkronizasyon_ve_CLI\"><span class=\"toc_number toc_depth_2\">8.2<\/span> Toplu Senkronizasyon ve CLI<\/a><\/li><li><a href=\"#Gunluk_Aktarim_Asamali_Gecis\"><span class=\"toc_number toc_depth_2\">8.3<\/span> G\u00fcnl\u00fck Aktar\u0131m, A\u015famal\u0131 Ge\u00e7i\u015f<\/a><\/li><\/ul><\/li><li><a href=\"#Sorun_Giderme_CORS_MIME_Mixed_Content_ve_403ler\"><span class=\"toc_number toc_depth_1\">9<\/span> Sorun Giderme: CORS, MIME, Mixed Content ve 403\u2019ler<\/a><ul><li><a href=\"#CORS_Kucuk_Bir_Virgul_Ama_Eksikse_Cumle_Dusuyor\"><span class=\"toc_number toc_depth_2\">9.1<\/span> CORS K\u00fc\u00e7\u00fck Bir Virg\u00fcl, Ama Eksikse C\u00fcmle D\u00fc\u015f\u00fcyor<\/a><\/li><li><a href=\"#MIME_Turleri_ve_Tarayicinin_Keyfi\"><span class=\"toc_number toc_depth_2\">9.2<\/span> MIME T\u00fcrleri ve Taray\u0131c\u0131n\u0131n Keyfi<\/a><\/li><li><a href=\"#Mixed_Content_ve_403\"><span class=\"toc_number toc_depth_2\">9.3<\/span> Mixed Content ve 403<\/a><\/li><\/ul><\/li><li><a href=\"#Performansi_Tadiyla_Artiran_Kucuk_Dokunuslar\"><span class=\"toc_number toc_depth_1\">10<\/span> Performans\u0131 Tad\u0131yla Art\u0131ran K\u00fc\u00e7\u00fck Dokunu\u015flar<\/a><ul><li><a href=\"#HTTP2_ve_HTTP3_Kenarda_Parliyor\"><span class=\"toc_number toc_depth_2\">10.1<\/span> HTTP\/2 ve HTTP\/3, Kenarda Parl\u0131yor<\/a><\/li><li><a href=\"#Gorsel_Optimizasyonunu_Akisa_Dahil_Et\"><span class=\"toc_number toc_depth_2\">10.2<\/span> G\u00f6rsel Optimizasyonunu Ak\u0131\u015fa Dahil Et<\/a><\/li><\/ul><\/li><li><a href=\"#Guvenlik_Kucuk_Ayarlar_Buyuk_Rahatlik\"><span class=\"toc_number toc_depth_1\">11<\/span> G\u00fcvenlik: K\u00fc\u00e7\u00fck Ayarlar, B\u00fcy\u00fck Rahatl\u0131k<\/a><ul><li><a href=\"#Anahtar_Yonetimi_ve_En_Az_Yetki\"><span class=\"toc_number toc_depth_2\">11.1<\/span> Anahtar Y\u00f6netimi ve En Az Yetki<\/a><\/li><li><a href=\"#CDN_Kenarinda_Basit_Duvarlar\"><span class=\"toc_number toc_depth_2\">11.2<\/span> CDN Kenar\u0131nda Basit Duvarlar<\/a><\/li><\/ul><\/li><li><a href=\"#Sik_Yapilan_Hatalar_ve_Benim_Ufak_Cozumlerim\"><span class=\"toc_number toc_depth_1\">12<\/span> S\u0131k Yap\u0131lan Hatalar ve Benim Ufak \u00c7\u00f6z\u00fcmlerim<\/a><ul><li><a href=\"#Once_CDN_Sonra_Kovayi_Acarim_Tersligi\"><span class=\"toc_number toc_depth_2\">12.1<\/span> \u201c\u00d6nce CDN, Sonra Kovay\u0131 A\u00e7ar\u0131m\u201d Tersli\u011fi<\/a><\/li><li><a href=\"#Cachei_Kapatalim_Dert_Bitirir_Yanilgisi\"><span class=\"toc_number toc_depth_2\">12.2<\/span> \u201cCache\u2019i Kapatal\u0131m, Dert Bitirir\u201d Yan\u0131lg\u0131s\u0131<\/a><\/li><li><a href=\"#Bir_Gunde_Her_Seyi_Tasiyacagim_Baskisi\"><span class=\"toc_number toc_depth_2\">12.3<\/span> \u201cBir G\u00fcnde Her \u015eeyi Ta\u015f\u0131yaca\u011f\u0131m\u201d Bask\u0131s\u0131<\/a><\/li><\/ul><\/li><li><a href=\"#Kapanis_Yolun_Sonunda_Hafiflemis_Bir_Site\"><span class=\"toc_number toc_depth_1\">13<\/span> Kapan\u0131\u015f: Yolun Sonunda Hafiflemi\u015f Bir Site<\/a><\/li><\/ul><\/div>\n<h2 id=\"section-1\"><span id=\"Bir_Sabah_Medya_Klasorunun_Kapisini_Caldigim_Gun\">Bir Sabah Medya Klas\u00f6r\u00fcn\u00fcn Kap\u0131s\u0131n\u0131 \u00c7ald\u0131\u011f\u0131m G\u00fcn<\/span><\/h2>\n<p>Hi\u00e7 ba\u015f\u0131na geldi mi? Sabah kahveni alm\u0131\u015f, ke\u015fke her \u015fey bug\u00fcn h\u0131zl\u0131 aksa diye d\u00fc\u015f\u00fcn\u00fcrken WordPress\u2019in <strong>uploads<\/strong> klas\u00f6r\u00fcne bakars\u0131n; gigabaytlar, y\u00fczlerce k\u00fc\u00e7\u00fck g\u00f6rsel, birka\u00e7 devasa video\u2026 Sunucunun nefesi kesik kesik. O g\u00fcn, bir m\u00fc\u015fterinin sitesinde tam olarak bunu ya\u015fad\u0131m. Sayfalar a\u011f\u0131r a\u00e7\u0131l\u0131yor, CDN yok, medyalar PHP\u2019nin omzuna y\u00fck gibi binmi\u015f. Ben de bir nefes al\u0131p \u201cBunu bir daha ya\u015famayal\u0131m\u201d diye S3 uyumlu depolamaya ta\u015f\u0131ma fikrini masaya yat\u0131rd\u0131m.<\/p>\n<p>Burada anlatacaklar\u0131m tam da o s\u00fcrecin s\u0131cak izleri: WordPress medyan\u0131 <strong>S3 uyumlu<\/strong> bir depoya ta\u015f\u0131rken nelere dikkat edilir, <strong>CDN<\/strong> nas\u0131l ba\u011flan\u0131r, \u00f6zel i\u00e7erikleri <strong>imzal\u0131 URL<\/strong> ile nas\u0131l g\u00fcvenli ta\u015f\u0131r\u0131z ve bir dosyay\u0131 g\u00fcncelledi\u011finde <strong>\u00f6nbellek ge\u00e7ersizle\u015ftirme<\/strong> nas\u0131l \u201c\u015fak\u201d diye \u00e7al\u0131\u015f\u0131r. Kula\u011fa uzun bir yol gibi geliyor olabilir ama ad\u0131mlar do\u011fru oldu\u011funda her \u015fey \u015fa\u015f\u0131rt\u0131c\u0131 derecede ak\u0131c\u0131. Hadi birlikte y\u00fcr\u00fcyelim.<\/p>\n<h2 id=\"section-2\"><span id=\"Neden_S3_Uyumlu_Depolama_Ne_Kazaniriz_Neyi_Fark_Ederiz\">Neden S3 Uyumlu Depolama? Ne Kazan\u0131r\u0131z, Neyi Fark Ederiz?<\/span><\/h2>\n<p>Bir arkada\u015f ortam\u0131nda anlat\u0131r gibi s\u00f6yleyeyim: Medyay\u0131 uygulama sunucusundan uzakla\u015ft\u0131rd\u0131\u011f\u0131nda, sitenin s\u0131rt\u0131ndaki \u00e7antay\u0131 hafifletiyorsun. Trafik artt\u0131\u011f\u0131nda paniklemiyorsun, depolama esnekli\u011fi elinin alt\u0131nda oluyor. Dosyalar\u0131 bir yerde, uygulamay\u0131 ba\u015fka bir yerde tutman\u0131n verdi\u011fi rahatl\u0131k da cabas\u0131. \u00dcstelik g\u00f6r\u00fcnt\u00fcleri, PDF\u2019leri, videolar\u0131 istersen bir <strong>CDN<\/strong> ile d\u00fcnyan\u0131n d\u00f6rt yan\u0131na yak\u0131n lokasyonlardan da\u011f\u0131t\u0131yorsun.<\/p>\n<p>Bir di\u011fer g\u00fczellik: <strong>S\u00fcr\u00fcmleme<\/strong> ve <strong>uzun \u00f6m\u00fcrl\u00fc \u00f6nbellek<\/strong> ayarlar\u0131yla ziyaret\u00e7iye ayn\u0131 dosyay\u0131 tekrar tekrar y\u00fcklatm\u0131yorsun. Bu, hem performans\u0131 hem maliyeti etkiliyor. Dezavantaj yok mu? Var tabii. Yap\u0131land\u0131rma do\u011fru olmazsa CORS y\u00fcz\u00fcnden taray\u0131c\u0131 trip atar, izinler yanl\u0131\u015fsa 403 hatalar\u0131yla bo\u011fu\u015fursun, imzal\u0131 URL ak\u0131\u015f\u0131n\u0131 iyi kurmazsan \u00f6zel i\u00e7erik elden ka\u00e7ar. Ama d\u00fczg\u00fcn ad\u0131mlarsan hepsi kontrol alt\u0131nda.<\/p>\n<h2 id=\"section-3\"><span id=\"Hazirlik_Kova_Anahtarlar_Izinler_ve_CORS\">Haz\u0131rl\u0131k: Kova, Anahtarlar, \u0130zinler ve CORS<\/span><\/h2>\n<h3><span id=\"Bucketi_Kurarken_Bir_Not_Defteri_Ac\">Bucket\u2019\u0131 Kurarken Bir Not Defteri A\u00e7<\/span><\/h3>\n<p>\u0130ster Amazon S3, ister MinIO, Backblaze B2 ya da Wasabi gibi <strong>S3 uyumlu<\/strong> bir servis olsun, ilk i\u015f bir <strong>bucket<\/strong> a\u00e7\u0131p not defterine k\u00fc\u00e7\u00fck bir liste yap: bucket ad\u0131, b\u00f6lge, eri\u015fim anahtar\u0131, gizli anahtar, endpoint ve iste\u011fe ba\u011fl\u0131 <strong>path style<\/strong> deste\u011fi. Burada temiz bir isimlendirme i\u015fini ba\u015ftan kolayla\u015ft\u0131r\u0131r. Mesela <strong>cdn.seninmarkan.com<\/strong> gibi bir CNAME d\u00fc\u015f\u00fcneceksen, bucket ad\u0131n\u0131 ve CDN adresini kafa kar\u0131\u015ft\u0131rmayacak \u015fekilde kurgula.<\/p>\n<h3><span id=\"Izinler_ve_Surumleme\">\u0130zinler ve S\u00fcr\u00fcmleme<\/span><\/h3>\n<p>\u201cHepsini herkese a\u00e7ay\u0131m gitsin\u201d refleksine kap\u0131lmak kolay ama dur. Genel dosyalar i\u00e7in <strong>CDN<\/strong> \u00fczerinden eri\u015fim sa\u011flamak en k\u0131ymetlisi. Kovay\u0131 tamamen herkese a\u00e7\u0131k yapmak yerine, m\u00fcmk\u00fcnse dosyalar\u0131 \u00f6zel tutup CDN\u2019e \u201corijin eri\u015fimi\u201d yetkisi vermek daha g\u00fcvenli. Bunun yan\u0131nda <strong>versioning<\/strong> \u00f6zelli\u011fini a\u00e7mak, ayn\u0131 dosyay\u0131 g\u00fcncelledi\u011finde eski s\u00fcr\u00fcm\u00fc saklamana yard\u0131m eder. Hem yanl\u0131\u015fl\u0131kla silinen dosyalar i\u00e7in de k\u00fc\u00e7\u00fck bir sigorta gibidir.<\/p>\n<h3><span id=\"CORS_Ayarini_Unutma\">CORS Ayar\u0131n\u0131 Unutma<\/span><\/h3>\n<p>WordPress, admin panelinden g\u00f6rsel k\u0131rpmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, ya da bir g\u00f6rseli farkl\u0131 bir domainden kullan\u0131rken taray\u0131c\u0131 CORS kontrol\u00fc yapar. Basit bir CORS kural\u0131 hayat kurtar\u0131r. \u00d6rne\u011fin Amazon S3\u2019te temel bir CORS yap\u0131land\u0131rmas\u0131 ile \u201cGET, HEAD\u201d isteklerine izin vermek \u00e7o\u011fu senaryoda yeter. Resmi dok\u00fcmana g\u00f6z atmak istersen, <a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/ManageCorsUsing.html\" rel=\"nofollow noopener\" target=\"_blank\">S3 CORS yap\u0131land\u0131rmas\u0131 i\u00e7in g\u00fczel bir ad\u0131m ad\u0131m anlat\u0131m<\/a> var.<\/p>\n<h2 id=\"section-4\"><span id=\"WordPress_Tarafi_Eklenti_Secimi_Yukleme_Kurallari_ve_URLler\">WordPress Taraf\u0131: Eklenti Se\u00e7imi, Y\u00fckleme Kurallar\u0131 ve URL\u2019ler<\/span><\/h2>\n<h3><span id=\"Hangi_Eklenti_Asil_Onemli_Olan_Ayar_Disiplini\">Hangi Eklenti? As\u0131l \u00d6nemli Olan Ayar Disiplini<\/span><\/h3>\n<p>Bu i\u015fi yapan birka\u00e7 olgun eklenti var. \u201cWP Offload Media\u201d gibi se\u00e7enekler pratik bir y\u00f6netim paneli ve k\u00fct\u00fcphaneyi ta\u015f\u0131ma ara\u00e7lar\u0131 sunuyor. Lite s\u00fcr\u00fcm\u00fcn\u00fc WordPress deposunda <a href=\"https:\/\/wordpress.org\/plugins\/amazon-s3-and-cloudfront\/\" rel=\"nofollow noopener\" target=\"_blank\">amazon s3 ve cloudfront ad\u0131yla bulmak<\/a> m\u00fcmk\u00fcn. Alternatif a\u00e7\u0131k kaynak \u00e7\u00f6z\u00fcmlerle de ilerlenebilir. Se\u00e7im ne olursa olsun, eklentinin \u015fu ayarlar\u0131 d\u00fczg\u00fcn yapmas\u0131na dikkat et: <strong>bucket<\/strong> bilgisi, <strong>endpoint<\/strong>, <strong>eri\u015fim anahtarlar\u0131<\/strong>, <strong>dosya yolu \u015fablonu<\/strong> (\u00f6rne\u011fin uploads\/2025\/11\/ gibi), <strong>URL de\u011fi\u015ftirme<\/strong> ve <strong>orijinali yerelde tut<\/strong> se\u00e7ene\u011fi.<\/p>\n<h3><span id=\"Orijinali_Sunucuda_Tutmak_mi_Tutmamak_mi\">Orijinali Sunucuda Tutmak m\u0131, Tutmamak m\u0131?<\/span><\/h3>\n<p>Ben genelde orijinali sunucuda tutmay\u0131 kapat\u0131yorum. \u00c7\u00fcnk\u00fc as\u0131l hedef, medyan\u0131n a\u011f\u0131rl\u0131\u011f\u0131n\u0131 uygulama sunucusundan almak. Ama ilk ge\u00e7i\u015fte \u201cbiraz g\u00fcvende olay\u0131m\u201d hissiyle bir s\u00fcre a\u00e7\u0131k tutulabilir. Yine de sonra temizlik \u015fart. Eklenti, yeni y\u00fcklenen dosyalar\u0131 kovaya atarken, var olan k\u00fct\u00fcphaneyi de s\u0131rayla ta\u015f\u0131ma \u00f6zelli\u011fi sunuyorsa onu kullan. B\u00f6ylece medyan\u0131n b\u00fcy\u00fck k\u0131sm\u0131 otomatik ta\u015f\u0131n\u0131r, URL\u2019ler de yeni adrese d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr.<\/p>\n<h3><span id=\"URLlerinizi_Guzelce_Yenileyin\">URL\u2019lerinizi G\u00fczelce Yenileyin<\/span><\/h3>\n<p>CDN kullanacaksan, eklentide <strong>\u00f6zel bir CDN domain\u2019i<\/strong> tan\u0131mla. Bu, <strong>cdn.seninmarkan.com<\/strong> gibi bir alt alan ad\u0131 olur. Dosya yollar\u0131n\u0131 sabit ve tahmin edilebilir tut, b\u00f6ylelikle cache stratejileri daha net \u00e7al\u0131\u015f\u0131r. Tarihe g\u00f6re klas\u00f6rleme al\u0131\u015fkanl\u0131\u011f\u0131 i\u015f g\u00f6r\u00fcr; istersen i\u00e7erik t\u00fcr\u00fcne g\u00f6re \u00f6n ekler de koyabilirsin. \u00d6rne\u011fin <strong>media\/images<\/strong>, <strong>media\/videos<\/strong> gibi mant\u0131kl\u0131 ayr\u0131mlar, bir s\u00fcre sonra d\u00fczenlemede nefes ald\u0131r\u0131r.<\/p>\n<h2 id=\"section-5\"><span id=\"CDN_Baglamak_DNS_HTTPS_ve_Kenar_Onbellegi\">CDN Ba\u011flamak: DNS, HTTPS ve Kenar \u00d6nbelle\u011fi<\/span><\/h2>\n<h3><span id=\"CDNi_Ortaga_Donusturmek\">CDN\u2019i Orta\u011fa D\u00f6n\u00fc\u015ft\u00fcrmek<\/span><\/h3>\n<p>CDN\u2019i devreye ald\u0131\u011f\u0131nda, esas sihir dosyalar\u0131n co\u011frafi olarak yak\u0131n noktalardan servis edilmesi. Benim pratik yakla\u015f\u0131m\u0131m \u015f\u00f6yle: \u00d6nce CDN\u2019de bir <strong>distribution<\/strong> olu\u015ftur, orijin olarak S3 uyumlu endpoint\u2019i g\u00f6ster. Ard\u0131ndan DNS\u2019te <strong>cdn.seninmarkan.com<\/strong> i\u00e7in CNAME kayd\u0131n\u0131 bu da\u011f\u0131t\u0131ma y\u00f6nlendir. HTTPS sertifikas\u0131n\u0131 CDN \u00fczerinde tan\u0131mla; \u00e7o\u011fu sa\u011flay\u0131c\u0131 \u00fccretsiz sertifika sunuyor. HTTP\/2 ve HTTP\/3 deste\u011fini a\u00e7mak ak\u0131c\u0131l\u0131\u011f\u0131 ciddi etkiler; istersen bunu ad\u0131m ad\u0131m <a href=\"https:\/\/www.dchost.com\/blog\/nginx-ve-cloudflareda-http-2-ve-http-3-quic-nasil-etkinlestirilir-wordpress-icin-uctan-uca-kurulum-ve-test-rehberi\/\">HTTP\/2 ve HTTP\/3 rehberimizdeki \u00f6rneklerle<\/a> birlikte d\u00fc\u015f\u00fcn.<\/p>\n<h3><span id=\"Cache-Control_ve_Uzun_Omurlu_Onbellek\">Cache-Control ve Uzun \u00d6m\u00fcrl\u00fc \u00d6nbellek<\/span><\/h3>\n<p>Statik medya i\u00e7in en sevdi\u011fim yakla\u015f\u0131m <strong>\u201cuzun TTL + s\u00fcr\u00fcmleme\u201d<\/strong>. Yani dosyalar\u0131 bir kez yay\u0131mlad\u0131\u011f\u0131nda, taray\u0131c\u0131 ve CDN onun \u00e7ok uzun s\u00fcre de\u011fi\u015fmeyece\u011fini bilsin. Bunun i\u00e7in <strong>Cache-Control: public, max-age=31536000, immutable<\/strong> gibi bir ba\u015fl\u0131k kullanmak mant\u0131kl\u0131. \u201cPeki ya dosyay\u0131 g\u00fcncellersem?\u201d diye sorarsan, i\u015fte burada s\u00fcr\u00fcmleme ve dosya ad\u0131 de\u011fi\u015fikli\u011fi devreye giriyor. Az sonra ge\u00e7ersizle\u015ftirme b\u00f6l\u00fcm\u00fcnde buna d\u00f6nece\u011fiz.<\/p>\n<h3><span id=\"Guvenlik_ve_Sikistirma\">G\u00fcvenlik ve S\u0131k\u0131\u015ft\u0131rma<\/span><\/h3>\n<p>CDN ile HTTPS zaten \u015fart. Kenarda <strong>Brotli<\/strong> ve <strong>gzip<\/strong> gibi s\u0131k\u0131\u015ft\u0131rmalar\u0131 uygun tipler i\u00e7in aktif tutmak, g\u00f6nderilen baytlar\u0131 azalt\u0131r. Sunucu taraf\u0131nda TLS ayarlar\u0131n\u0131 s\u0131k\u0131la\u015ft\u0131rmak istersen, <a href=\"https:\/\/www.dchost.com\/blog\/nginxte-tls-1-3-ocsp-stapling-ve-brotli-nasil-kurulur-hizli-ve-guvenli-httpsnin-sicacik-rehberi\/\">TLS 1.3 ve Brotli \u00fczerine yazd\u0131\u011f\u0131m\u0131z rehber<\/a> elinin alt\u0131nda dursun. Statik medyada fark\u0131 net hissedersin, \u00f6zellikle de b\u00fcy\u00fck CSS\/JS dosyalar\u0131 ve SVG\u2019lerde.<\/p>\n<h2 id=\"section-6\"><span id=\"Imzali_URL_Ozel_Icerigi_Kibarca_Koruma\">\u0130mzal\u0131 URL: \u00d6zel \u0130\u00e7eri\u011fi Kibarca Koruma<\/span><\/h2>\n<h3><span id=\"Hangi_Senaryoda_Imzali_URL\">Hangi Senaryoda \u0130mzal\u0131 URL?<\/span><\/h3>\n<p>\u00dcyelik alan\u0131, kurs videolar\u0131, \u00fccretli e-kitaplar\u2026 Bazen her \u015fey a\u00e7\u0131k olmas\u0131n istersin. \u0130mzal\u0131 URL, dosyaya eri\u015fimi belirli bir s\u00fcreyle s\u0131n\u0131rlar. Linki kopyalayan da olsa, s\u00fcresi dolunca i\u015fe yaramaz. Burada iki ana yol var: <strong>dosyay\u0131 do\u011frudan S3\u2019ten imzal\u0131 linkle vermek<\/strong> ya da <strong>CDN taraf\u0131nda imzal\u0131 URL\/\u00e7erez mekanizmas\u0131n\u0131 kullanmak<\/strong>. \u0130kinci yol genellikle daha h\u0131zl\u0131, \u00e7\u00fcnk\u00fc kenar noktalardaki \u00f6nbellekten servis edilir.<\/p>\n<h3><span id=\"CDN_Imzali_URLlere_Kucuk_Bir_Pencere\">CDN \u0130mzal\u0131 URL\u2019lere K\u00fc\u00e7\u00fck Bir Pencere<\/span><\/h3>\n<p>CloudFront gibi bir da\u011f\u0131t\u0131mda <strong>signed URL<\/strong> veya <strong>signed cookies<\/strong> tercih edebilirsin. Bu ak\u0131\u015fta, belirledi\u011fin anahtarla CDN\u2019e \u201c\u015fu dosyaya \u015fu s\u00fcre kadar izin ver\u201d dersin. Detayl\u0131 okumak istersen <a href=\"https:\/\/docs.aws.amazon.com\/AmazonCloudFront\/latest\/DeveloperGuide\/private-content-signed-urls.html\" rel=\"nofollow noopener\" target=\"_blank\">CloudFront imzal\u0131 URL mant\u0131\u011f\u0131n\u0131 anlatan rehber<\/a> gayet net. WordPress taraf\u0131nda \u00fcyelik kontrol\u00fcn\u00fcn ard\u0131ndan bu URL\u2019leri \u00fcretip kullan\u0131c\u0131ya sunars\u0131n; sayfa kapal\u0131yken dosya da kapal\u0131 kal\u0131r.<\/p>\n<h3><span id=\"Toparlayici_Ipuclari\">Toparlay\u0131c\u0131 \u0130pu\u00e7lar\u0131<\/span><\/h3>\n<p>\u0130mzal\u0131 URL \u00fcretirken <strong>k\u0131sa ve amaca uygun bir TTL<\/strong> se\u00e7. \u00c7ok k\u0131sa yaparsan kullan\u0131c\u0131 deneyimi k\u0131r\u0131labilir, \u00e7ok uzun yaparsan g\u00fcvenlik anlam\u0131n\u0131 yitirir. Anahtarlar\u0131 WordPress kod taban\u0131nda d\u00fcz metin gibi tutmamak, \u00e7evresel de\u011fi\u015fkenlerle y\u00f6netmek iyi bir refleks. Eklenti kullan\u0131yorsan, imza \u00fcretimini kendi i\u00e7inde yapanlar\u0131 tercih etmek i\u015fleri basitle\u015ftirir.<\/p>\n<h2 id=\"section-7\"><span id=\"Onbellek_Gecersizlestirme_Dosyayi_Guncelledim_Neden_Hala_Eski\">\u00d6nbellek Ge\u00e7ersizle\u015ftirme: \u201cDosyay\u0131 G\u00fcncelledim, Neden H\u00e2l\u00e2 Eski?\u201d<\/span><\/h2>\n<h3><span id=\"Surumleme_Dosya_Adi_ve_Hash\">S\u00fcr\u00fcmleme, Dosya Ad\u0131 ve Hash<\/span><\/h3>\n<p>Bir g\u00f6rseli de\u011fi\u015ftirirsin, ama kullan\u0131c\u0131 ayn\u0131 URL ile eski s\u00fcr\u00fcm\u00fc g\u00f6r\u00fcr. Bu, asl\u0131nda g\u00fczel bir haber: \u00d6nbelle\u011fin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. Bununla ba\u015fa \u00e7\u0131kman\u0131n en sa\u011fl\u0131kl\u0131 yolu <strong>dosya ad\u0131n\u0131 s\u00fcr\u00fcmlemek<\/strong>. Mesela <strong>banner.jpg<\/strong> yerine <strong>banner.2025-11.jpg<\/strong> ya da i\u00e7erik hash\u2019i kullanmak. Dosya ad\u0131 de\u011fi\u015fti\u011finde, CDN ve taray\u0131c\u0131 yeni kayna\u011f\u0131 s\u0131f\u0131rdan al\u0131r. Bu, kitle i\u00e7inde <strong>\u201cimmutable\u201d<\/strong> ba\u015fl\u0131klar\u0131 g\u00f6n\u00fcl rahatl\u0131\u011f\u0131yla kullanman\u0131n kap\u0131s\u0131n\u0131 a\u00e7ar.<\/p>\n<h3><span id=\"CDN_Invalidationin_Yeri\">CDN Invalidation\u2019\u0131n Yeri<\/span><\/h3>\n<p>Bazen dosya ad\u0131n\u0131 de\u011fi\u015ftiremezsin, ya da bir SVG\u2019nin hep ayn\u0131 kalmas\u0131n\u0131 istemi\u015fsindir. Bu durumda <strong>CDN invalidation<\/strong> devreye girer. Belirli bir yol desenini silersin; CDN bir sonraki istekte orijinden taze s\u00fcr\u00fcm\u00fc al\u0131r. Kurumsal sitelerde s\u00fcr\u00fcmleme art\u0131 invalidation kombinasyonu i\u015fin en dertsiz hali. WordPress\u2019te g\u00f6rseli g\u00fcncelledi\u011finde eklentinin otomatik olarak ilgili yolu ge\u00e7ersiz k\u0131lmas\u0131n\u0131 sa\u011flamak, insan hatas\u0131n\u0131 ciddi bi\u00e7imde azalt\u0131r.<\/p>\n<h3><span id=\"WordPress_Tam_Sayfa_Onbellegiyle_Uyumu\">WordPress Tam Sayfa \u00d6nbelle\u011fiyle Uyumu<\/span><\/h3>\n<p>Medya taraf\u0131n\u0131 halletmek g\u00fczel ama tam sayfa \u00f6nbelle\u011fi kullan\u0131yorsan, resim URL\u2019leri de\u011fi\u015fti\u011finde sayfan\u0131n kendisini de yenilemek gerekir. Bu uyumu ak\u0131lda tutmak \u015fart. Tam sayfa \u00f6nbelle\u011fiyle ilgili pratik ak\u0131\u015flar\u0131 topluca g\u00f6rmek istersen, <a href=\"https:\/\/www.dchost.com\/blog\/wordpresste-tam-sayfa-onbellekleme-nasil-kurulur-nginx-fastcgi-cache-varnish-ve-litespeed-cache-ile-woocommercee-nazikce-dokunmak\/\">WordPress\u2019te tam sayfa \u00f6nbellekleme rehberindeki ipu\u00e7lar\u0131<\/a> medyay\u0131 S3\u2019e ta\u015f\u0131d\u0131ktan sonra da i\u015fine yarar.<\/p>\n<h2 id=\"section-8\"><span id=\"Adim_Adim_Tasima_Korkmadan_Kucuk_Denemelerle\">Ad\u0131m Ad\u0131m Ta\u015f\u0131ma: Korkmadan, K\u00fc\u00e7\u00fck Denemelerle<\/span><\/h2>\n<h3><span id=\"Once_Staging_Sonra_Uretim\">\u00d6nce Staging, Sonra \u00dcretim<\/span><\/h3>\n<p>Ger\u00e7ek medyay\u0131 ta\u015f\u0131madan \u00f6nce k\u00fc\u00e7\u00fck bir <strong>staging<\/strong> ortam\u0131nda deney yapmak, b\u00fct\u00fcn riskleri k\u00fc\u00e7\u00fclt\u00fcr. Eklentiyi kur, minimal izinlerle eri\u015fim anahtar\u0131n\u0131 tan\u0131mla, s\u0131n\u0131rl\u0131 bir klas\u00f6r\u00fc kovaya ta\u015f\u0131. URL d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn sayfalarda nas\u0131l g\u00f6r\u00fcnd\u00fc\u011f\u00fcne bak. Birka\u00e7 farkl\u0131 taray\u0131c\u0131yla kontrol et; gizli pencerede test etmeyi unutma.<\/p>\n<h3><span id=\"Toplu_Senkronizasyon_ve_CLI\">Toplu Senkronizasyon ve CLI<\/span><\/h3>\n<p>E\u011fer k\u00fct\u00fcphanen \u00e7ok b\u00fcy\u00fckse, eklentinin aray\u00fcz\u00fc yerine <strong>WP-CLI<\/strong> komutlar\u0131n\u0131 ya da S3 uyumlu bir <strong>rclone<\/strong> ak\u0131\u015f\u0131n\u0131 denemek rahatlat\u0131r. B\u00fcy\u00fck dosyalar\u0131 gece saatlerinde ta\u015f\u0131mak, trafik ve zamanlama a\u00e7\u0131s\u0131ndan da huzur verir. Tam bu noktada ben her zaman \u201c\u00f6nce yedek\u201d derim. S3\u2019le \u00e7al\u0131\u015f\u0131yorsan, uzak yedeklemeyi de S3 uyumlu bir depoda tutmak mant\u0131kl\u0131; istersen <a href=\"https:\/\/www.dchost.com\/blog\/restic-ve-borg-ile-s3-uyumlu-uzak-yedekleme-surumleme-sifreleme-ve-saklama-ne-zaman-nasil\/\">Restic ve Borg ile S3 uyumlu yedekleme yaz\u0131m\u0131za<\/a> bir g\u00f6z at. Ayn\u0131 i\u015f akl\u0131n\u0131 hem medya hem yedeklemeye uygulars\u0131n.<\/p>\n<h3><span id=\"Gunluk_Aktarim_Asamali_Gecis\">G\u00fcnl\u00fck Aktar\u0131m, A\u015famal\u0131 Ge\u00e7i\u015f<\/span><\/h3>\n<p>Her \u015feyi bir gecede ta\u015f\u0131mak zorunda de\u011filsin. \u00d6nce yeni y\u00fcklemeleri S3\u2019e almaya ba\u015fla, ard\u0131ndan eski ar\u015fivi par\u00e7a par\u00e7a ge\u00e7ir. Eklenti \u201cbulunamayan dosya\u201d gibi durumlarda yerel kopyaya d\u00fc\u015febiliyorsa, ge\u00e7i\u015f s\u0131ras\u0131nda k\u0131r\u0131k link riski de azal\u0131r. CDN\u2019i en sonda devreye almak, ilk g\u00fcnlerde hata ay\u0131klamay\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<h2 id=\"section-9\"><span id=\"Sorun_Giderme_CORS_MIME_Mixed_Content_ve_403ler\">Sorun Giderme: CORS, MIME, Mixed Content ve 403\u2019ler<\/span><\/h2>\n<h3><span id=\"CORS_Kucuk_Bir_Virgul_Ama_Eksikse_Cumle_Dusuyor\">CORS K\u00fc\u00e7\u00fck Bir Virg\u00fcl, Ama Eksikse C\u00fcmle D\u00fc\u015f\u00fcyor<\/span><\/h3>\n<p>Taray\u0131c\u0131 konsolunda \u201cCORS policy\u201d diye ba\u011f\u0131ran hatalar g\u00f6r\u00fcrsen, admin paneli i\u00e7inden yap\u0131lan k\u0131rpma\/yeniden boyutland\u0131rma i\u015flemlerinde veya JS ile \u00e7ekilen g\u00f6rsellerde CORS\u2019un do\u011fru kurgulanmad\u0131\u011f\u0131n\u0131 anlars\u0131n. \u201cGET, HEAD, OPTIONS\u201d izni ve kaynak domain\u2019lere izin vermek \u00e7o\u011fu senaryoda yeter. Cache\u2019lenmi\u015f CORS ayarlar\u0131n\u0131n CDN taraf\u0131nda kalm\u0131\u015f olabilece\u011fini unutma; bazen sadece config\u2019i de\u011fil, bu cevab\u0131 da tazelemek gerekir.<\/p>\n<h3><span id=\"MIME_Turleri_ve_Tarayicinin_Keyfi\">MIME T\u00fcrleri ve Taray\u0131c\u0131n\u0131n Keyfi<\/span><\/h3>\n<p>SVG\u2019nin metin gibi yanl\u0131\u015f tipte d\u00f6nmesi, ya da font dosyalar\u0131nda <strong>cross-origin<\/strong> sorunlar\u0131\u2026 Bu durumlarda do\u011fru <strong>Content-Type<\/strong> ve gerekirse <strong>Access-Control-Allow-Origin<\/strong> ba\u015fl\u0131klar\u0131 oyunu de\u011fi\u015ftirir. CDN\u2019in \u201coverride\u201d ayarlar\u0131yla, belli uzant\u0131lar i\u00e7in do\u011fru t\u00fcrleri zorlamak iyi bir fikir. S3 taraf\u0131nda baz\u0131 dosyalar\u0131n t\u00fcrlerini elle d\u00fczenlemek de pratik bir \u00e7\u00f6z\u00fcm.<\/p>\n<h3><span id=\"Mixed_Content_ve_403\">Mixed Content ve 403<\/span><\/h3>\n<p>HTTPS\u2019e ge\u00e7ti\u011fin h\u00e2lde sayfada <strong>http:\/\/<\/strong> ile \u00e7a\u011fr\u0131lan eski g\u00f6rseller kar\u015f\u0131na \u00e7\u0131kabilir. Bu tip durumlarda URL yenileme ad\u0131m\u0131n\u0131 yeniden g\u00f6zden ge\u00e7ir. 403 hatalar\u0131nda ise genellikle izin politikas\u0131, imzal\u0131 URL s\u00fcre a\u015f\u0131m\u0131 veya CDN\u2019in orijine eri\u015fim kural\u0131 sorumludur. K\u00fc\u00e7\u00fck bir ipucu: CDN g\u00fcnl\u00fcklerini a\u00e7mak ve hatal\u0131 dosyay\u0131 birebir takip etmek, bazen saatlerce s\u00fcrecek tahmini aramay\u0131 dakikalara indirir.<\/p>\n<h2 id=\"section-10\"><span id=\"Performansi_Tadiyla_Artiran_Kucuk_Dokunuslar\">Performans\u0131 Tad\u0131yla Art\u0131ran K\u00fc\u00e7\u00fck Dokunu\u015flar<\/span><\/h2>\n<h3><span id=\"HTTP2_ve_HTTP3_Kenarda_Parliyor\">HTTP\/2 ve HTTP\/3, Kenarda Parl\u0131yor<\/span><\/h3>\n<p>CDN\u2019in zaten bu protokolleri destekliyor olabilir, ama yerel sunucunda da u\u00e7tan uca ak\u0131\u015f istiyorsan ipu\u00e7lar\u0131na bakmak iyi gelir. Bu konuda, <a href=\"https:\/\/www.dchost.com\/blog\/nginx-ve-cloudflareda-http-2-ve-http-3-quic-nasil-etkinlestirilir-wordpress-icin-uctan-uca-kurulum-ve-test-rehberi\/\">HTTP\/2 ve HTTP\/3 etkinle\u015ftirme rehberindeki ad\u0131mlar\u0131<\/a> uygulad\u0131\u011f\u0131nda g\u00f6rsel, CSS ve JS istekleri \u00e7ok daha ak\u0131c\u0131 akar.<\/p>\n<h3><span id=\"Gorsel_Optimizasyonunu_Akisa_Dahil_Et\">G\u00f6rsel Optimizasyonunu Ak\u0131\u015fa Dahil Et<\/span><\/h3>\n<p>Medyan S3\u2019e ta\u015f\u0131nd\u0131 diye <strong>g\u00f6rsel optimizasyonu<\/strong> rafa kalkm\u0131yor. WebP veya AVIF \u00fcretimi, uygun boyutlarda serve etmek ve \u201clazy-load\u201d davran\u0131\u015f\u0131 hissedilir fark yarat\u0131r. Baz\u0131 CDN\u2019ler istek an\u0131nda d\u00f6n\u00fc\u015ft\u00fcrme sunuyor; bunu aktif etti\u011finde orijinal dosyay\u0131 b\u00fcy\u00fck bile tutsan u\u00e7ta hafifletilmi\u015f s\u00fcr\u00fcm\u00fc servis edebiliyorsun. Yaln\u0131z, imzal\u0131 URL ve d\u00f6n\u00fc\u015f\u00fcm \u00f6zelliklerini birlikte kurgularken izne dikkat et; \u00f6zel i\u00e7eri\u011fin d\u00f6n\u00fc\u015f\u00fcm s\u0131ras\u0131nda a\u00e7\u0131\u011fa \u00e7\u0131kmamas\u0131 gerekir.<\/p>\n<h2 id=\"section-11\"><span id=\"Guvenlik_Kucuk_Ayarlar_Buyuk_Rahatlik\">G\u00fcvenlik: K\u00fc\u00e7\u00fck Ayarlar, B\u00fcy\u00fck Rahatl\u0131k<\/span><\/h2>\n<h3><span id=\"Anahtar_Yonetimi_ve_En_Az_Yetki\">Anahtar Y\u00f6netimi ve En Az Yetki<\/span><\/h3>\n<p>IAM anahtarlar\u0131n\u0131 WordPress\u2019e verirken, \u201cen az yetki\u201d kural\u0131n\u0131 kendine \u015fiar edin. Sadece gerekli kovaya, sadece gerekli i\u015flemlere izin ver. \u201cHer \u015feye yetkili anahtar\u201d rahat geliyor gibi g\u00f6r\u00fcnse de, bir s\u0131z\u0131nt\u0131 an\u0131nda gereksiz kap\u0131lar a\u00e7ar. \u00c7evresel de\u011fi\u015fkenlerle y\u00f6netmek, gizli anahtarlar\u0131 depo d\u0131\u015f\u0131na ta\u015f\u0131mak ve eri\u015fim g\u00fcnl\u00fc\u011f\u00fc tutmak i\u00e7ini rahatlat\u0131r.<\/p>\n<h3><span id=\"CDN_Kenarinda_Basit_Duvarlar\">CDN Kenar\u0131nda Basit Duvarlar<\/span><\/h3>\n<p>CDN taraf\u0131nda rate limit, temel WAF kurallar\u0131 ve belirli yol desenlerine eri\u015fim k\u0131s\u0131tlamas\u0131 i\u015fe yarar. WordPress sitelerini bot\u2019lardan korumak i\u00e7in pratik \u00f6neriler ar\u0131yorsan, <a href=\"https:\/\/www.dchost.com\/blog\/cloudflare-waf-kurallari-ve-oran-sinirlama-ile-wordpressi-botlardan-nasil-korursun\/\">Cloudflare WAF kurallar\u0131 ve oran s\u0131n\u0131rlama rehberindeki<\/a> fikirler medya isteklerinde de sa\u00e7ma yo\u011funluklar\u0131 engellemeyi kolayla\u015ft\u0131r\u0131r.<\/p>\n<h2 id=\"section-12\"><span id=\"Sik_Yapilan_Hatalar_ve_Benim_Ufak_Cozumlerim\">S\u0131k Yap\u0131lan Hatalar ve Benim Ufak \u00c7\u00f6z\u00fcmlerim<\/span><\/h2>\n<h3><span id=\"Once_CDN_Sonra_Kovayi_Acarim_Tersligi\">\u201c\u00d6nce CDN, Sonra Kovay\u0131 A\u00e7ar\u0131m\u201d Tersli\u011fi<\/span><\/h3>\n<p>CDN\u2019i kurup k\u00f6pr\u00fcleri d\u00f6\u015femeden kovay\u0131 herkese a\u00e7mak, ge\u00e7i\u015fte tutars\u0131zl\u0131k do\u011furur. Benim yolum tam tersi: \u00d6nce kovay\u0131 do\u011fru izinlerle haz\u0131rlar, CDN\u2019i araya koyar, sonra kamuya a\u00e7ar\u0131m. B\u00f6ylece URL\u2019ler yay\u0131nland\u0131\u011f\u0131 anda do\u011fru yoldan akar.<\/p>\n<h3><span id=\"Cachei_Kapatalim_Dert_Bitirir_Yanilgisi\">\u201cCache\u2019i Kapatal\u0131m, Dert Bitirir\u201d Yan\u0131lg\u0131s\u0131<\/span><\/h3>\n<p>\u00d6nbelle\u011fi kapatmak k\u0131sa vadede \u201coh be\u201d dedirtir ama uzun vadede maliyet ve h\u0131zdan yersin. As\u0131l kilit, <strong>immutable + s\u00fcr\u00fcmleme<\/strong> yakla\u015f\u0131m\u0131n\u0131 oturtmak. Dosya ad\u0131n\u0131 bilin\u00e7li \u015fekilde de\u011fi\u015ftirdi\u011finde, CDN ve taray\u0131c\u0131yla kavga etmezsin.<\/p>\n<h3><span id=\"Bir_Gunde_Her_Seyi_Tasiyacagim_Baskisi\">\u201cBir G\u00fcnde Her \u015eeyi Ta\u015f\u0131yaca\u011f\u0131m\u201d Bask\u0131s\u0131<\/span><\/h3>\n<p>Medya b\u00fcy\u00fckse, acele etmek hata demektir. A\u015famal\u0131 ge\u00e7i\u015f, k\u00fc\u00e7\u00fck gruplarla deneme ve izleme en sa\u011fl\u0131kl\u0131s\u0131. Eski URL\u2019leri dikkatle yenile, k\u0131r\u0131k g\u00f6rselleri yakalamak i\u00e7in bir s\u00fcre log\u2019lara g\u00f6z kulak ol.<\/p>\n<h2 id=\"section-13\"><span id=\"Kapanis_Yolun_Sonunda_Hafiflemis_Bir_Site\">Kapan\u0131\u015f: Yolun Sonunda Hafiflemi\u015f Bir Site<\/span><\/h2>\n<p>Buraya kadar geldiysen, art\u0131k resim net. WordPress medyan\u0131 <strong>S3 uyumlu<\/strong> bir depoya ta\u015f\u0131mak, sitenin s\u0131rt\u0131ndaki y\u00fck\u00fc al\u0131r; <strong>CDN<\/strong> ile h\u0131zlan\u0131r, <strong>imzal\u0131 URL<\/strong> ile \u00f6zel i\u00e7erik do\u011fru ki\u015fide kal\u0131r, <strong>\u00f6nbellek stratejisi<\/strong> ile maliyet ve performans dengesi kurulabilir. Hepsi, k\u00fc\u00e7\u00fck ve kontroll\u00fc ad\u0131mlarla yap\u0131ld\u0131\u011f\u0131nda ak\u0131p giden bir ak\u0131\u015fa d\u00f6n\u00fc\u015f\u00fcyor. Bir g\u00fcn ans\u0131z\u0131n \u201cBu site niye h\u0131zland\u0131?\u201d diye soran olursa, g\u00fcl\u00fcmser ve \u201cmedyay\u0131 yoldan \u00e7ektik\u201d dersin.<\/p>\n<p>Pratik bir kapan\u0131\u015f listesi yerine k\u00fc\u00e7\u00fck bir hat\u0131rlatma b\u0131rakay\u0131m: \u00d6nce staging\u2019de dene, izinleri en aza indir, URL\u2019leri temizce d\u00f6n\u00fc\u015ft\u00fcr, <strong>immutable + s\u00fcr\u00fcmleme<\/strong> ikilisini al\u0131\u015fkanl\u0131k yap, gerekti\u011finde CDN invalidation g\u00f6nder. Son dokunu\u015f olarak sayfalar\u0131n kendisindeki \u00f6nbelle\u011fi de unutma; bunun i\u00e7in <a href=\"https:\/\/www.dchost.com\/blog\/wordpresste-tam-sayfa-onbellekleme-nasil-kurulur-nginx-fastcgi-cache-varnish-ve-litespeed-cache-ile-woocommercee-nazikce-dokunmak\/\">tam sayfa \u00f6nbellekleme rehberindeki<\/a> pratikler g\u00fczel tamamlay\u0131c\u0131 olur. H\u0131zl\u0131, sakin ve kontroll\u00fc ge\u00e7i\u015fler dilerim. Bir sonraki yaz\u0131da g\u00f6r\u00fc\u015f\u00fcr\u00fcz.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u0130&ccedil;indekiler1 Bir Sabah Medya Klas\u00f6r\u00fcn\u00fcn Kap\u0131s\u0131n\u0131 \u00c7ald\u0131\u011f\u0131m G\u00fcn2 Neden S3 Uyumlu Depolama? Ne Kazan\u0131r\u0131z, Neyi Fark Ederiz?3 Haz\u0131rl\u0131k: Kova, Anahtarlar, \u0130zinler ve CORS3.1 Bucket\u2019\u0131 Kurarken Bir Not Defteri A\u00e73.2 \u0130zinler ve S\u00fcr\u00fcmleme3.3 CORS Ayar\u0131n\u0131 Unutma4 WordPress Taraf\u0131: Eklenti Se\u00e7imi, Y\u00fckleme Kurallar\u0131 ve URL\u2019ler4.1 Hangi Eklenti? As\u0131l \u00d6nemli Olan Ayar Disiplini4.2 Orijinali Sunucuda Tutmak m\u0131, Tutmamak [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1469,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-1468","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=1468"}],"version-history":[{"count":0,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1468\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/1469"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=1468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=1468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=1468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}