Bu yazımda sizlerle paylaşacağım Cloudflare Workers'ı kullanarak kendi özel alan adı URL kısaltıcınızı nasıl oluşturabilirsiniz?. İster işinize başka bir araç eklemek isteyen bir web geliştiricisi olun, ister yüksek fiyat etiketi olmadan bağlantılarınızı markalamak isteyen bir işletme sahibi olun, ister yalnızca web teknolojileriyle uğraşmayı seven biri olun, bu adım adım kılavuz size yöneliktir. Sen.
Bir web geliştiricisi ve teknoloji meraklısı olarak interneti daha verimli ve kullanıcı dostu hale getiren küçük şeyler beni her zaman büyülemiştir. Bir gün, özellikle uzun ve hantal bir URL'yi bir meslektaşımla paylaşırken, kendimi bağlantıları kısaltmanın basit, kişiselleştirilmiş bir yolunu dilerken buldum. Elbette piyasada çok sayıda URL kısaltma hizmeti var, ancak ben daha çok "ben" hissi veren, özelleştirebileceğim ve kontrol edebileceğim bir şey istedim.
İşte o zaman Cloudflare Workers'ı kullanarak kendi özel URL kısaltıcımı oluşturma fikri aklıma geldi.. Uçsuz bucaksız web teknolojileri denizinde gizli bir hazine bulmak gibiydi. Yalnızca URL'leri kısaltmakla kalmayıp, bunu kendi alan adımla da ücretsiz olarak yapabilirim! Bu keşfin heyecanı bana ilk kez bir web sitesi kurduğum zamanı hatırlattı; o güçlenme ve sonsuz olasılıklar telaşı.
Bu keşfi daha da heyecan verici kılan şey, özel bir alanda markalı kısa bağlantılar oluşturmak için Bit.ly veya TinyURL gibi popüler hizmetlere harika, ücretsiz bir alternatif olarak hizmet edebileceğinin farkına varılmasıydı. Birçok işletme ve birey bu tür bir işlevsellik için iyi para ödüyor, ancak burada aynı sonucu bir kuruş bile harcamadan elde etmenin bir yolu var.
Adım 1: Alan Adı Kaydı Yapın (Kısa Alan Adı Kullanın)
Özel URL kısaltıcınızı oluşturmanın ilk adımı bir alan adı kaydettirmektir. Bu, markalı kısa bağlantılarınızın temeli olacaktır, bu yüzden akıllıca seçim yapın!
Mükemmel alan adını seçmenize yardımcı olacak bazı ipuçları:
- Kısa tutmak: URL kısaltıcının asıl amacı kısa bağlantılar oluşturmaktır. Mümkünse 3-5 karakterli alan adlarını arayın. Bu bir kısaltma, kısaltma veya akılda kalıcı bir kelime olabilir.
- Unutulmaz kılın: Hatırlanması ve yazılması kolay bir şey seçin. Bu sizin ve başkalarının kısaltılmış bağlantılarınızı kullanmasını kolaylaştıracaktır.
- Markanızı düşünün: Bunu bir işletme veya kişisel marka için kullanıyorsanız alan adını mevcut marka kimliğinizle uyumlu hale getirmeye çalışın.
- Kullanılabilirliği kontrol et: Kısa, akılda kalıcı alan adları yoğun talep görüyor. İlk tercihiniz mevcut değilse yaratıcı olmanız veya .io, .co veya .me gibi alternatif üst düzey alan adlarını (TLD'ler) düşünmeniz gerekebilir.
- TLD'yi düşünün: .com popüler olsa da diğer TLD'lerden çekinmeyin. .link veya .click gibi bazıları özellikle URL kısaltıcı için uygun olabilir.
İşte size ilham verecek bazı örnekler:
- abc.link
- go.io
- shrt.com
- zap.me
Alan adınızı seçtikten sonra onu bir alan adı kayıt şirketinden satın almanız gerekir. Bazı popüler seçenekler şunlardır:
- Namecheap
- GoDaddy
- Cloudflare (Önerilir – Cloudflare Workers'ı kullanacağımız için bu da çok kullanışlıdır)
Alan adı ücretli olsa da, bunun yılda bir kerelik bir satın alma olduğunu ve URL kısaltıcı kurulumumuzun geri kalanının Cloudflare Workers kullanılarak ücretsiz olacağını unutmayın.
Profesyonel ipucu: Satın alma işleminizi tamamlamadan önce alan adının herhangi bir spam veya kötü amaçlı etkinlikle ilişkili olmadığından emin olun. Domain Tools veya Wayback Machine gibi araçları kullanarak geçmişini kontrol edebilirsiniz.
Yeni alan adınız elinizde olduğundan bir sonraki adıma geçmeye hazırsınız: alan adınız için Cloudflare kurulumu. Ancak bunu bir sonraki bölümde ele alacağız.
2. Adım: Alanınız için DNS Kayıtlarını Yapılandırın
Artık alanınızı aldığınıza göre DNS yapılandırmasını ayarlamanın zamanı geldi. Bu adım, Cloudflare Çalışanlarınızın yeni kayıtlı alanınızla doğru şekilde çalışmasını sağlamak için çok önemlidir.
Süreci gözden geçirelim:
1. Alan Adınızı Cloudflare'e Ekleyin
- Henüz yapmadıysanız, ücretsiz bir Cloudflare hesabı oluşturun.
- Cloudflare kontrol panelinizde “Site Ekle”ye tıklayın ve alan adınızı girin.
- Cloudflare mevcut DNS kayıtlarını tarayacaktır. Bulduğu tüm kayıtları silin (alan adını e-posta veya diğer önemli hizmetler için de kullanmıyorsanız, bu durumda bunları saklayın).
2. Ad Sunucularını Güncelleyin (Alanınız Cloudflare'e kayıtlıysa bu adımı göz ardı edin)
- Cloudflare size bir dizi ad sunucusu sağlayacaktır.
- Alan adı kayıt kuruluşunuzun web sitesine gidin ve mevcut ad sunucularını Cloudflare tarafından sağlanan ad sunucularıyla değiştirin.
- Bu adımın dünya çapında yayılması 24 saat kadar sürebilir.
3. DNS Kayıtlarını Yapılandırın
- Cloudflare DNS ayarlarınıza iki yeni A kaydı ekleyeceğiz.
- Aşağıdakileri ekleyin:
Tip: A
Adınız: @
İçerik: 192.0.2.1
TTL: Oto
Vekil durumu: Proxy uygulandı (turuncu bulut - çok önemli)
Tip: A
Adınız: www
İçerik: 192.0.2.1
TTL: Oto
Vekil durumu: Proxy uygulandı (turuncu bulut - çok önemli)
Bu 192.0.2.1 IP'si özel bir "kukla" adrestir. Dokümantasyon ve test için ayrılmıştır, bu da onu ihtiyaçlarımız için mükemmel kılar.
4. Cloudflare Proxy'yi etkinleştirin
- DNS kaydınız için proxy durumunun (turuncu bulut simgesi) etkinleştirildiğinden emin olun.
- Bu, Cloudflare'in trafiğinizi proxy olarak kullanmasına olanak tanır ve Cloudflare Çalışanlarının çalışması için gereklidir.
5. Yapılandırmayı Doğrulayın
- Ad sunucusu değişikliği yayıldıktan sonra Cloudflare, alan adınızı "Etkin" olarak gösterecektir.
- Bunu Cloudflare kontrol panelinde doğrulayabilirsiniz.
Buradaki kilit nokta, alan adınızı herhangi bir gerçek web barındırma hizmetine yönlendirmememizdir. 192.0.2.1 adresi yalnızca yer tutucudur. Daha sonra kuracağımız Cloudflare Worker'ınız alan adınıza gelen tüm istekleri engelleyecek ve URL kısaltma mantığını yönetecektir.
Profesyonel İpucu: Bu kurulum, herhangi bir web barındırma için ödeme yapmanıza veya onu yönetmenize gerek olmadığı anlamına gelir. Cloudflare Çalışanları tüm ağır yükleri üstlenecek, bu da bu çözümü yalnızca ücretsiz değil aynı zamanda inanılmaz derecede hafif ve bakımı kolay hale getirecek.
DNS'niz doğru şekilde yapılandırıldığında, artık heyecan verici kısma geçmeye hazırsınız: Cloudflare Worker'ınızı URL kısaltmayı yönetecek şekilde ayarlama.
3. Adım: Cloudflare Çalışanı Oluşturma
Artık etki alanımızı Cloudflare'de yapılandırdığımıza göre, yönlendirmelerimizi yönetecek Worker'ı oluşturmanın zamanı geldi. Cloudflare Çalışanları, optimum performans için kodumuzu kullanıcılarımıza yakın, uçta çalıştırmamıza olanak tanıyan sunucusuz bir yürütme ortamı sağlar.
1. Cloudflare Çalışanı Oluşturun
- İşçiler Bölümüne Erişim:
- Cloudflare panonuza giriş yapın.
- Kenar çubuğundan “İşçiler” bölümüne gidin.
- Bu ilk Çalışanınızsa "Hizmet Oluştur"a, zaten mevcut İşçileriniz varsa "İşçi Oluştur"a tıklayın.
- Çalışanınızın Adını Verin:
- Worker'ınız için "toplu yönlendirme işleyicisi" gibi açıklayıcı bir ad seçin.
- Düzenleyiciye ilerlemek için “Hizmet Oluştur”a tıklayın.
- İşçi Senaryosunun Yazılması:
- Düzenleyicide, varsayılan kodu yönlendirme işleyici komut dosyasıyla değiştirin:
varsayılan ver {
asenkron getirme(istek) {
const yönlendirmeMap = yeni Harita([
["google", "https://www.google.com?subId1=google"],
["bing", "https://www.bing.com?subId1=bing"],
// Gerektiğinde buraya daha fazla yönlendirme ekleyin
]);
const url = yeni URL(request.url);
console.log("Tam URL:", url.toString());
console.log("Ana Bilgisayar Adı:", url.ana Bilgisayar Adı);
console.log("Yol adı:", url.yoladı);
let yol = url.pathname.toLowerCase().replace(/^\//, '').split('/')[0];
if (url.anasistem adı.includes('işçiler.dev')) {
yol = url.pathname.toLowerCase().replace(/^\//, '').split('/')[1] || '';
}
console.log("İşlenen yol:", yol);
const konum = yönlendirmeMap.get(yol);
console.log("Konumu yönlendir:", konum);
// Kalıcı yönlendirme için 301 olarak değiştirin
eğer (konum) {
return Response.redirect(konum, 302);
}
// Eğer istek haritada değilse, 404'ü veya tercih ettiğiniz geri dönüşü döndürün
return new Response(`Bulunamadı: ${path}`, { status: 404 });
},
};
- Senaryoyu Anlamak:
- Bir tanımlıyoruz yönlendirme Haritası kısa yollarımızı ve bunlara karşılık gelen tam URL'leri içerir.
["google", "https://www.google.com?subId1=google"],
yourshorturl.com/google -> https://www adresine yönlendirir.google.com?subId1=google
["bing", "https://www.bing.com?subId1=bing"],
yourshorturl.com/bing, -> https://www.bing.com?subId1=bing adresine yönlendirir
- Komut dosyası, gelen istekleri işler, yolu çıkarır ve tanımlanmış yönlendirmelerimizden herhangi biriyle eşleşip eşleşmediğini kontrol eder.
- Bir eşleşme bulunursa ilgili URL'ye 302 (Geçici Yönlendirme) döndürür.
- Eşleşme bulunamazsa 404 Bulunamadı yanıtı döndürür.
- İşçiyi Test Etmek:
- Değişiklik yapmak ve Çalışanınızı test etmek için Cloudflare kontrol panelindeki "Hızlı Düzenleme" özelliğini kullanın.
- İstekleri simüle etmek ve Çalışanınızın nasıl yanıt verdiğini görmek için sağlanan HTTP test aracını kullanabilirsiniz.
- İşçinin Görevlendirilmesi:
- Testlerinizden memnun kaldığınızda Worker'ınızı canlı hale getirmek için “Kaydet ve Dağıt”a tıklayın.
- İşçi Rotalarını Ayarlama:
- Dağıtımdan sonra Worker'ınız için "Tetikleyiciler" sekmesine gidin.
- Alanınızla eşleşen bir rota ekleyin; örneğin *önerir.link/*.
- Bu, etki alanınıza gelen tüm isteklerin bu Çalışan tarafından işlenmesini sağlar.
- Kurulumun Doğrulanması:
- Yönlendirme yollarınızdan birkaçına erişmeyi deneyin (ör. https://recommends.link/url-shortener-guide) beklendiği gibi çalıştıklarından emin olmak için.
- Konsol çıktısını görmek ve yolların doğru şekilde işlendiğini doğrulamak için Cloudflare kontrol panelinizdeki İşçi Günlüklerini kontrol edin.
4. Adım: Daha Fazla Özelleştirme (İsteğe Bağlı)
Cloudflare KV ile Dinamik Yönlendirmeler
Yönlendirme sistemimizi daha esnek ve yönetimi daha kolay hale getirmek için yönlendirmelerimizi depolamak için Cloudflare KV (Anahtar-Değer) depolamayı kullanabiliriz:
KV Ad Alanı oluşturun:
- Cloudflare kontrol panelinizde İşçiler > KV'ye gidin. "Ad alanı oluştur"u tıklayın ve ona bir ad verin (örneğin, "REDIRECT_MAP").
- Çalışanınızın ayarlarına gidin. “KV Ad Alanı Bağlantıları” altında yeni bir bağlama ekleyin. KV ad alanınızı seçin ve ona bir değişken adı verin (örneğin, REDIRECTS).
varsayılan ver {
async fetch(istek, ortam) {
const url = yeni URL(request.url);
const yol = url.pathname.toLowerCase().replace(/^\//, '').split('/')[0];
const konum = wait env.REDIRECTS.get(path);
eğer (konum) {
return Response.redirect(konum, 301);
}
return new Response(`Bulunamadı: ${path}`, { status: 404 });
},
};
Artık Çalışan kodunu değiştirmeden KV deposunu değiştirerek yönlendirmeleri ekleyebilir, güncelleyebilir veya kaldırabilirsiniz.
Parametreli Yönlendirmeler
Yönlendirmelerinizde dinamik parametrelere izin verin:
varsayılan ver {
async fetch(istek, ortam) {
const url = yeni URL(request.url);
const [yol, ...params] = url.pathname.toLowerCase().replace(/^\//, '').split('/');
let konum = wait env.REDIRECTS.get(path);
eğer (konum) {
// Yer tutucuları gerçek parametrelerle değiştir
params.forEach((param, dizin) => {
konum = konum.replace(`{${index}}`, param);
});
return Response.redirect(konum, 301);
}
return new Response(`Bulunamadı: ${path}`, { status: 404 });
},
};
Bu kurulumla "product" : "https://mystore.com/item/{0}/details" gibi bir KV girişiniz olabilir ve bunu şu şekilde kullanabilirsiniz: yourshortlink.com/product/12345.
İzleme ve Analiz'e tıklayın
Yönlendirme olaylarını günlüğe kaydederek temel analizleri uygulayın:
varsayılan ver {
async fetch(istek, ortam) {
const url = yeni URL(request.url);
const yol = url.pathname.toLowerCase().replace(/^\//, '').split('/')[0];
const konum = wait env.REDIRECTS.get(path);
eğer (konum) {
// Yönlendirme olayını günlüğe kaydet
wait env.REDIRECTS.put(`${path__clicks`, (parseInt(await env.REDIRECTS.get(`${path__clicks`) || '0') + 1).toString());
return Response.redirect(konum, 301);
}
return new Response(`Bulunamadı: ${path}`, { status: 404 });
},
};
Özel Hata Sayfaları
Düz metin 404 yanıtı yerine özel bir HTML sayfası döndürün:
const notFoundPage = `
Bağlantı Bulunamadı
gövde { yazı tipi ailesi: Arial, sans-serif; metin hizalama: ortala; üst dolgu: 50 piksel; }
Hata! Bağlantı Bulunamadı
Aradığınız kısa bağlantı mevcut değil.
`;
// Getirme fonksiyonunuzda:
yeni Yanıt döndür (notFoundPage, {
durum: 404,
başlıklar: { 'Content-Type': 'text/html' }
});
Hız sınırlama
Kötüye kullanımı önlemek için temel oran sınırlamasını uygulayın:
varsayılan ver {
async fetch(istek, ortam) {
const ip = request.headers.get('CF-Bağlantı-IP');
constrateLimitKey = `ratelimit:${ip}`;
const currentRequests = parseInt(await env.REDIRECTS.get(rateLimitKey) || '0');
if (currentRequests > 100) { // Dakika başına 100 istek sınırı
return new Response('Hız sınırı aşıldı', { durum: 429 });
}
wait env.REDIRECTS.put(rateLimitKey, (currentRequests + 1).toString(), {expirationTtl: 60});
// Yönlendirme mantığınızın geri kalanı burada
},
};
A / B Testi
Yönlendirmeleriniz için basit A/B testi uygulayın:
varsayılan ver {
async fetch(istek, ortam) {
const url = yeni URL(request.url);
const yol = url.pathname.toLowerCase().replace(/^\//, '').split('/')[0];
const konumA = wait env.REDIRECTS.get(`${path__A`);
const konumB = wait env.REDIRECTS.get(`${path__B`);
if (konumA && konumB) {
const konumu = Math.random() < 0.5 ? konumA : konumB;
return Response.redirect(konum, 301);
}
// A/B testi ayarlanmamışsa normal yönlendirmeye geri dönüş
const konum = wait env.REDIRECTS.get(path);
eğer (konum) {
return Response.redirect(konum, 301);
}
return new Response(`Bulunamadı: ${path}`, { status: 404 });
},
};
Bu özelleştirmeler ve genişletmeler, toplu yönlendirme sisteminize önemli işlevler ekleyerek onu daha esnek, güçlü ve bilgilendirici hale getirir. Bu özelliklerin her biri, özel ihtiyaçlarınıza ve kullanım durumlarınıza göre daha da geliştirilebilir ve genişletilebilir.
Özet: Cloudflare Çalışanlarıyla Özel Bağlantı Kısaltıcı Oluşturma
Bu blog yazısı boyunca Cloudflare Workers'ı kullanarak güçlü ve esnek bir özel URL kısaltıcının nasıl oluşturulacağını araştırdık. Bu çözüm, geniş ölçekte kısa bağlantılar oluşturmaya yönelik ücretsiz ve etkili bir yaklaşım sunar.
TL; DR:
- Cloudflare Çalışanları, küresel dağıtım ve düşük gecikme süresiyle özel yönlendirme mantığını uygulamak için sunucusuz bir platform sağlar.
- Özel etki alanınızı Çalışana bağlamak için doğru DNS yapılandırması ve Çalışan Rotaları kurulumu çok önemlidir.
- Basit bir JavaScript tabanlı Worker, karmaşık yeniden yönlendirme senaryolarını verimli bir şekilde işleyebilir.
- Cloudflare'in Anahtar-Değer (KV) depolamasından dinamik, kolay yönetilebilir yönlendirme haritaları oluşturmak için yararlanılabilir.
- Parametrelendirilmiş yönlendirmeler, tıklama izleme, özel hata sayfaları, hız sınırlama ve A/B testi gibi gelişmiş özellikler, Worker ekosisteminde uygulanabilir.
- Bu sistem geleneksel sistemlere göre önemli avantajlar sunuyor yönlendirme yöntemleriİyileştirilmiş performans, daha kolay yönetim ve gelişmiş esneklik dahil.
Oluşturduğumuz çözüm birçok avantaj sunuyor:
- ölçeklenebilirlik: Performans kaybı olmadan milyonlarca yönlendirmeyi yönetir.
- Esneklik: Temel mantığı değiştirmeden yönlendirmeleri kolayca ekleyin, değiştirin veya kaldırın.
- Performans: Dünya çapında hızlı yönlendirmeler için Cloudflare'in küresel ağından yararlanır.
- Kişiselleştirme: Analitik ve A/B testi gibi gelişmiş özelliklere olanak tanır.
- Maliyet etkinliği: Sunucusuz mimariyi kullanarak barındırma maliyetlerini azaltma potansiyeline sahiptir.
- Ücretsiz alternatif Bit.ly gibi popüler hizmetlere veya Yourls özel bir alanda markalı kısa bağlantılar oluşturmak için.
Artık bu Cloudflare Worker tabanlı yönlendirme sisteminin gücünü ve esnekliğini anladığınıza göre, onu eyleme geçirmenin zamanı geldi:
- Henüz yapmadıysanız Cloudflare hesabına kaydolun ve Workers platformunu tanıyın.
- Bu sistemi kendi markalı kısa bağlantılarınız veya toplu yönlendirmeleriniz için uygulayın.
- Sistemi özel ihtiyaçlarınıza göre uyarlamak için tartıştığımız gelişmiş özellikleri deneyin.
- Aşağıdaki yorumlar bölümünde deneyimlerinizi paylaşın veya sorular sorun. Görüşleriniz topluluktaki diğer kişilere yardımcı olabilir!
- Daha gelişmiş kullanım örnekleri veya özel uygulamalar için bir Cloudflare Workers uzmanına veya danışmanlık hizmetine ulaşmayı düşünün.
Meraklı kalın, öğrenmeye devam edin ve Cloudflare Workers gibi araçlarla mümkün olanın sınırlarını zorlamaktan çekinmeyin.