Šajā ierakstā es dalīšos ar jums kā jūs varat izveidot savu pielāgoto domēna URL saīsinātāju, izmantojot Cloudflare Workers. Neatkarīgi no tā, vai esat tīmekļa izstrādātājs, kurš vēlas savai jostai pievienot citu rīku, uzņēmuma īpašnieks, kurš vēlas izveidot jūsu saišu zīmolu bez dārgas cenas, vai vienkārši kāds, kam patīk nodarboties ar tīmekļa tehnoloģijām, šī soli pa solim sniegtā rokasgrāmata ir paredzēta tu.
Kā tīmekļa izstrādātājs un tehnoloģiju entuziasts mani vienmēr ir fascinējuši sīkumi, kas padara internetu efektīvāku un lietotājam draudzīgāku. Kādu dienu, kopīgojot īpaši garu un smagnēju URL ar kolēģi, es atklāju, ka vēlos vienkāršu, personalizētu veidu, kā saīsināt saites. Protams, ir daudz vietrāžu URL saīsināšanas pakalpojumu, taču es gribēju kaut ko tādu, kas jūtas vairāk "es" — kaut ko es varētu pielāgot un kontrolēt.
Toreiz es nejauši uzdūros idejai izveidot savu pielāgoto URL saīsinātāju, izmantojot Cloudflare Workers. Tas bija kā apslēpta dārguma atrašana plašajā tīmekļa tehnoloģiju jūrā. Es varētu ne tikai saīsināt vietrāžus URL, bet arī bez maksas to izdarīt ar savu domēna nosaukumu! Satraukums par šo atklājumu man atgādināja pirmo reizi, kad es izvietoju vietni – šo spēku un bezgalīgo iespēju pieplūdumu.
Šo atklājumu vēl aizraujošāku padarīja apzināšanās, ka tas var kalpot kā fantastiska, bezmaksas alternatīva tādiem populāriem pakalpojumiem kā Bit.ly vai TinyURL, lai izveidotu īsas zīmola saites pielāgotā domēnā. Daudzi uzņēmumi un privātpersonas maksā labu naudu par šāda veida funkcionalitāti, taču šeit ir veids, kā sasniegt to pašu rezultātu, neiztērējot ne santīma.
1. darbība: reģistrējiet domēna vārdu (izmantojiet īsu domēnu)
Pirmais solis pielāgotā URL saīsinātāja izveidei ir domēna vārda reģistrēšana. Tas būs jūsu zīmola īso saišu pamats, tāpēc izvēlieties saprātīgi!
Šeit ir daži padomi, kas palīdzēs jums izvēlēties perfektu domēnu:
- Saglabājiet to īsu: URL saīsinātāja mērķis ir izveidot īsas saites. Ja iespējams, meklējiet domēna vārdus ar 3–5 rakstzīmēm. Tas varētu būt saīsinājums, akronīms vai āķīgs vārds.
- Padariet to neaizmirstamu: izvēlieties kaut ko viegli iegaumējamu un ierakstāmu. Tādējādi jums un citiem būs vieglāk izmantot jūsu saīsinātās saites.
- Apsveriet savu zīmolu: ja to izmantojat uzņēmuma vai personīgajam zīmolam, mēģiniet saskaņot domēnu ar savu esošo zīmola identitāti.
- Pārbaudīt pieejamību: īsi, saistoši domēni ir ļoti pieprasīti. Ja jūsu pirmā izvēle nav pieejama, iespējams, jums būs jākļūst radošam vai jāapsver alternatīvi augstākā līmeņa domēni (TLD), piemēram, .io, .co vai .me.
- Padomājiet par TLD: lai gan .com ir populārs, nekautrējieties no citiem TLD. Daži, piemēram, .link vai .click, varētu būt īpaši piemēroti URL saīsinātājam.
Šeit ir daži piemēri, kas jūs iedvesmo:
- abc.saite
- go.io
- shrt.co
- zap.me
Kad esat izvēlējies savu domēnu, jums tas būs jāiegādājas no domēna reģistratūras. Dažas populāras iespējas ietver:
- Namecheap
- GoDaddy
- Cloudflare (Ieteicams — tas ir arī ļoti ērti, jo mēs izmantosim Cloudflare Workers)
Atcerieties: lai gan domēns maksās naudu, tas ir vienreizējs pirkums gadā, un pārējā URL saīsinātāja iestatīšana būs bez maksas, izmantojot Cloudflare Workers.
Profesionāla padoms: pirms pirkuma pabeigšanas pārliecinieties, vai domēns nav saistīts ar nevēlamu pastu vai ļaunprātīgu darbību. Varat pārbaudīt tā vēsturi, izmantojot tādus rīkus kā domēna rīki vai Wayback Machine.
Ar savu spīdīgo jauno domēnu rokā jūs esat gatavs pāriet uz nākamo darbību: Cloudflare iestatīšanu savam domēnam. Bet mēs to apskatīsim nākamajā sadaļā.
2. darbība: konfigurējiet DNS ierakstus savam domēnam
Tagad, kad jums ir jūsu domēns, ir pienācis laiks iestatīt DNS konfigurāciju. Šis solis ir ļoti svarīgs, lai nodrošinātu, ka jūsu Cloudflare Workers pareizi darbojas ar jūsu tikko reģistrēto domēnu.
Apskatīsim procesu:
1. Pievienojiet savu domēnu pakalpojumam Cloudflare
- Ja vēl neesat to izdarījis, izveidot bezmaksas Cloudflare kontu.
- Savā Cloudflare informācijas panelī noklikšķiniet uz “Pievienot vietni” un ievadiet savu domēna nosaukumu.
- Cloudflare skenēs esošos DNS ierakstus. Izdzēsiet visus atrastos ierakstus (ja vien domēnu neizmantojat arī e-pastam vai citiem svarīgiem pakalpojumiem, tādā gadījumā saglabājiet tos).
2. Atjauniniet vārdu serverus (ignorējiet šo darbību, ja jūsu domēns ir reģistrēts pakalpojumā Cloudflare)
- Cloudflare nodrošinās jūs ar nosaukumu serveru komplektu.
- Dodieties uz sava domēna reģistratora vietni un nomainiet esošos vārdu serverus ar tiem, ko nodrošina Cloudflare.
- Var paiet līdz 24 stundām, līdz šī darbība tiks izplatīta visā pasaulē.
3. Konfigurējiet DNS ierakstus
- Jūsu Cloudflare DNS iestatījumos mēs pievienosim divus jaunus A ierakstus.
- Pievienojiet tālāk norādīto.
Tips: A
nosaukums: @
Saturs: 192.0.2.1
TTL: auto
Starpniekservera statuss: Pilnvarotais (oranžais mākonis - ļoti svarīgi)
Tips: A
nosaukums: www
Saturs: 192.0.2.1
TTL: auto
Starpniekservera statuss: Pilnvarotais (oranžais mākonis - ļoti svarīgi)
Šī 192.0.2.1 IP ir īpaša “fiktīva” adrese. Tas ir paredzēts dokumentācijai un testēšanai, tāpēc tas ir lieliski piemērots mūsu vajadzībām.
4. Iespējojiet Cloudflare starpniekserveri
- Pārliecinieties, vai jūsu DNS ierakstam ir iespējots starpniekservera statuss (oranža mākoņa ikona).
- Tas ļauj Cloudflare nodrošināt jūsu trafika starpniekserveri, un tas ir nepieciešams, lai Cloudflare Workers darbotos.
5. Pārbaudiet konfigurāciju
- Kad vārda servera izmaiņas būs izplatītas, Cloudflare jūsu domēns parādīs kā “Aktīvs”.
- To varat pārbaudīt Cloudflare informācijas panelī.
Galvenais šeit ir tas, ka mēs nenorādām jūsu domēnu uz faktisku tīmekļa mitināšanu. 192.0.2.1 adrese ir tikai vietturis. Jūsu Cloudflare Worker, kuru mēs iestatīsim nākamreiz, pārtvers visus pieprasījumus jūsu domēnam un apstrādās URL saīsināšanas loģiku.
Profesionāļa padoms: šī iestatīšana nozīmē, ka jums nav jāmaksā par tīmekļa mitināšanu vai tas nav jāpārvalda. Cloudflare Workers tiks galā ar visu smago celšanu, padarot šo risinājumu ne tikai bezmaksas, bet arī neticami vieglu un viegli kopjamu.
Kad jūsu DNS ir pareizi konfigurēts, tagad esat gatavs pāriet uz aizraujošo daļu — Cloudflare Worker iestatīšanu, lai apstrādātu URL saīsināšanu.
3. darbība. Cloudflare darbinieka izveide
Tagad, kad mūsu domēns ir konfigurēts pakalpojumā Cloudflare, ir pienācis laiks izveidot darbinieku, kas apstrādās mūsu novirzīšanu. Cloudflare Workers nodrošina bezservera izpildes vidi, kas ļauj mums palaist kodu no malas, tuvu lietotājiem, lai nodrošinātu optimālu veiktspēju.
1. Izveidojiet Cloudflare darbinieku
- Piekļuve strādnieku sadaļai:
- Piesakieties savā Cloudflare informācijas panelī.
- Sānjoslā pārejiet uz sadaļu “Darbinieki”.
- Noklikšķiniet uz “Izveidot pakalpojumu”, ja šis ir jūsu pirmais darbinieks, vai uz “Izveidot darbinieku”, ja jums jau ir esošie darbinieki.
- Nosauciet savu darbinieku:
- Izvēlieties savam darbiniekam aprakstošu nosaukumu, piemēram, “bulk-redirects-handler”.
- Noklikšķiniet uz “Izveidot pakalpojumu”, lai pārietu uz redaktoru.
- Darba skripta rakstīšana:
- Redaktorā aizstājiet noklusējuma kodu ar novirzīšanas apdarinātāja skriptu:
eksportēt noklusējumu {
async fetch(request) {
const redirectMap = jauna karte ([
["google", "https://www.google.com?subId1=google"],
["bing", "https://www.bing.com?subId1=bing"],
// Pievienojiet šeit vairāk novirzīšanas pēc vajadzības
]);
const url = jauns URL(pieprasījums.url);
console.log("Pilns URL:", url.toString());
console.log("Saimniekdatora nosaukums:", url.hostname);
console.log("Ceļa nosaukums:", url.ceļa nosaukums);
let path = url.pathname.toLowerCase().replace(/^\//, '').split('/')[0];
if (url.hostname.includes('workers.dev')) {
ceļš = url.pathname.toLowerCase().replace(/^\//, '').split('/')[1] || '';
}
console.log("Apstrādātais ceļš:", ceļš);
const atrašanās vieta = redirectMap.get(ceļš);
console.log("Novirzīt atrašanās vietu:", atrašanās vieta);
// Pastāvīgajai novirzīšanai mainiet uz 301
if (atrašanās vieta) {
return Response.redirect(vieta, 302);
}
// Ja pieprasījums nav kartē, atgrieziet 404 vai vēlamo atkāpšanās numuru
return new Response(`Nav atrasts: ${path}`, { status: 404 });
},
};
- Skripta izpratne:
- Mēs definējam a redirectMap kurā ir mūsu īsie ceļi un tiem atbilstošie pilnie URL.
["google", "https://www.google.com?subId1=google"],
yourshorturl.com/google novirza uz -> https://www.google.com?subId1=google
["bing", "https://www.bing.com?subId1=bing"],
yourshorturl.com/bing novirza uz -> https://www.bing.com?subId1=bing
- Skripts apstrādā ienākošos pieprasījumus, izvelk ceļu un pārbauda, vai tas atbilst kādam no mūsu definētajiem novirzīšanas veidiem.
- Ja tiek atrasta atbilstība, tā atgriež 302 (pagaidu novirzīšana) uz atbilstošo URL.
- Ja atbilstība netiek atrasta, tas atgriež atbildi 404 Nav atrasts.
- Darbinieka pārbaude:
- Izmantojiet Cloudflare informācijas paneļa funkciju “Ātrā rediģēšana”, lai veiktu izmaiņas un pārbaudītu savu darbinieku.
- Varat izmantot nodrošināto HTTP testēšanas rīku, lai simulētu pieprasījumus un redzētu, kā jūsu darbinieks reaģē.
- Darbinieka izvietošana:
- Kad esat apmierināts ar testiem, noklikšķiniet uz Saglabāt un izvietot, lai jūsu darbinieks būtu pieejams.
- Darba ņēmēju maršrutu iestatīšana:
- Pēc izvietošanas atveriet sava darbinieka cilni “Traucējumi”.
- Pievienojiet maršrutu, kas atbilst jūsu domēnam, piemēram, *recommends.link/*.
- Tas nodrošina, ka visus pieprasījumus jūsu domēnam apstrādā šis darbinieks.
- Iestatīšanas pārbaude:
- Mēģiniet piekļūt dažiem saviem novirzīšanas ceļiem (piem., https://recommends.link/url-shortener-guide), lai nodrošinātu, ka tie darbojas, kā paredzēts.
- Pārbaudiet darbinieku žurnālus savā Cloudflare informācijas panelī, lai redzētu konsoles izvadi un pārbaudītu, vai ceļi tiek apstrādāti pareizi.
4. darbība: citi pielāgojumi (neobligāti)
Dinamiskās novirzīšanas, izmantojot Cloudflare KV
Lai padarītu mūsu novirzīšanas sistēmu elastīgāku un vieglāk pārvaldāmu, novirzīšanas glabāšanai varam izmantot Cloudflare KV (Key-Value) krātuvi.
Izveidojiet KV nosaukumvietu:
- Savā Cloudflare informācijas panelī dodieties uz Darbinieki > KV. Noklikšķiniet uz “Izveidot nosaukumvietu” un piešķiriet tai nosaukumu (piemēram, “REDIRECT_MAP”).
- Dodieties uz saviem darbinieka iestatījumiem. Sadaļā “KV Namespace Bindings” pievienojiet jaunu saistījumu. Izvēlieties savu KV nosaukumvietu un piešķiriet tai mainīgā nosaukumu (piemēram, REDIRECTS).
eksportēt noklusējumu {
async fetch(request, env) {
const url = jauns URL(pieprasījums.url);
const ceļš = url.pathname.toLowerCase().replace(/^\//, '').split('/')[0];
const atrašanās vieta = gaidīt env.REDIRECTS.get(path);
if (atrašanās vieta) {
return Response.redirect(vieta, 301);
}
return new Response(`Nav atrasts: ${path}`, { status: 404 });
},
};
Tagad varat pievienot, atjaunināt vai noņemt novirzīšanu, mainot KV veikalu, nemainot darbinieka kodu.
Parametrizētas novirzīšanas
Atļaujiet dinamiskos parametrus novirzīšanai:
eksportēt noklusējumu {
async fetch(request, env) {
const url = jauns URL(pieprasījums.url);
const [ceļš, ...params] = url.ceļanosaukums.LowerCase().replace(/^\//, '').split('/');
let location = gaidīt env.REDIRECTS.get(path);
if (atrašanās vieta) {
// Aizstāt vietturus ar faktiskajiem parametriem
params.forEach((param, indekss) => {
atrašanās vieta = atrašanās vieta.aizstāt(`{${index}}`, parametrs);
});
return Response.redirect(vieta, 301);
}
return new Response(`Nav atrasts: ${path}`, { status: 404 });
},
};
Izmantojot šo iestatījumu, jums varētu būt KV ieraksts, piemēram, “product”: “https://mystore.com/item/{0}/details” un izmantot to kā yourshortlink.com/product/12345.
Noklikšķiniet uz Izsekošana un analīze
Ieviesiet pamata analīzi, reģistrējot novirzīšanas notikumus:
eksportēt noklusējumu {
async fetch(request, env) {
const url = jauns URL(pieprasījums.url);
const ceļš = url.pathname.toLowerCase().replace(/^\//, '').split('/')[0];
const atrašanās vieta = gaidīt env.REDIRECTS.get(path);
if (atrašanās vieta) {
// Reģistrējiet novirzīšanas notikumu
gaidīt env.REDIRECTS.put(`${path}_clicks`, (parseInt(gaidiet env.REDIRECTS.get(`${path}_clicks`) || '0') + 1).toString());
return Response.redirect(vieta, 301);
}
return new Response(`Nav atrasts: ${path}`, { status: 404 });
},
};
Pielāgotas kļūdu lapas
Vienkārša teksta 404 atbildes vietā atgrieziet pielāgotu HTML lapu:
const notFoundPage = `
Saite nav atrasta
body { font-family: Arial, sans-serif; teksta līdzināšana: centrs; polsterējums augšpusē: 50 pikseļi; }
Hmm! Saite nav atrasta
Īsā saite, kuru meklējat, neeksistē.
`;
// Ieneses funkcijā:
return new Response(notFoundPage, {
statuss: 404,
galvenes: { 'Content-Type': 'text/html'}
});
Rate ierobežošana
Ieviesiet pamata likmes ierobežojumu, lai novērstu ļaunprātīgu izmantošanu:
eksportēt noklusējumu {
async fetch(request, env) {
const ip = request.headers.get('CF-Connecting-IP');
const rateLimitKey = `ratelimit:${ip}`;
const currentRequests = parseInt(gaidiet env.REDIRECTS.get(rateLimitKey) || '0');
if (currentRequests > 100) { // 100 pieprasījumu minūtē ierobežojums
return new Response ('Likmes limits pārsniegts', { statuss: 429 });
}
gaidiet env.REDIRECTS.put(rateLimitKey, (currentRequests + 1).toString(), {expirationTtl: 60});
// Pārējā jūsu novirzīšanas loģika šeit
},
};
A / B testēšana
Ieviesiet vienkāršu A/B testēšanu novirzīšanai:
eksportēt noklusējumu {
async fetch(request, env) {
const url = jauns URL(pieprasījums.url);
const ceļš = url.pathname.toLowerCase().replace(/^\//, '').split('/')[0];
const locationA = gaidīt env.REDIRECTS.get(`${path}_A`);
const locationB = gaidīt env.REDIRECTS.get(`${path}_B`);
if (vietaA && atrašanās vietaB) {
const atrašanās vieta = Math.random() < 0.5? atrašanās vietaA: atrašanās vietaB;
return Response.redirect(vieta, 301);
}
// Atkāpšanās uz parasto novirzīšanu, ja nav iestatīta A/B pārbaude
const atrašanās vieta = gaidīt env.REDIRECTS.get(path);
if (atrašanās vieta) {
return Response.redirect(vieta, 301);
}
return new Response(`Nav atrasts: ${path}`, { status: 404 });
},
};
Šie pielāgojumi un paplašinājumi jūsu lielapjoma novirzīšanas sistēmai pievieno ievērojamu funkcionalitāti, padarot to elastīgāku, jaudīgāku un informatīvāku. Katru no šīm funkcijām var vēl vairāk uzlabot un paplašināt, pamatojoties uz jūsu īpašajām vajadzībām un lietošanas gadījumiem.
Kopsavilkums: Pielāgota saites saīsinātāja izveide ar Cloudflare darbiniekiem
Šajā emuāra ziņojumā mēs esam izpētījuši, kā izveidot spēcīgu un elastīgu pielāgotu URL saīsinātāju, izmantojot Cloudflare Workers. Šis risinājums piedāvā bezmaksas un efektīvu pieeju īsu saišu izveidei plašā mērogā.
TL; DR:
- Cloudflare Workers nodrošina platformu bez serveriem pielāgotas novirzīšanas loģikas ieviešanai ar globālu izplatīšanu un zemu latentumu.
- Pareiza DNS konfigurācija un Worker Routes iestatīšana ir ļoti svarīga, lai jūsu pielāgotais domēns savienotu ar darbinieku.
- Vienkāršs uz JavaScript balstīts darbinieks var efektīvi apstrādāt sarežģītus novirzīšanas scenārijus.
- Cloudflare Key-Value (KV) krātuvi var izmantot, lai izveidotu dinamiskas, viegli pārvaldāmas novirzīšanas kartes.
- Darbinieku ekosistēmā var ieviest uzlabotas funkcijas, piemēram, parametrizētu novirzīšanu, klikšķu izsekošanu, pielāgotas kļūdu lapas, ātruma ierobežošanu un A/B testēšanu.
- Šī sistēma piedāvā ievērojamas priekšrocības salīdzinājumā ar tradicionālo novirzīšanas metodes, tostarp uzlabotu veiktspēju, vieglāku pārvaldību un uzlabotu elastību.
Mūsu izstrādātais risinājums piedāvā vairākas priekšrocības:
- Mērogojamība: apstrādā miljoniem novirzīšanas gadījumu, nepasliktinot veiktspēju.
- Elastīgums: viegli pievienojiet, mainiet vai noņemiet novirzīšanu, nemainot galveno loģiku.
- sniegums: izmanto Cloudflare globālo tīklu ātrai novirzīšanai visā pasaulē.
- Pielāgošanu: ļauj izmantot uzlabotas funkcijas, piemēram, analīzi un A/B testēšanu.
- Rentabilitāte: izmanto arhitektūru bez serveriem, potenciāli samazinot mitināšanas izmaksas.
- Bezmaksas alternatīva uz populāriem pakalpojumiem, piemēram, Bit.ly vai Jūsu lai izveidotu zīmola īsas saites pielāgotā domēnā.
Tagad, kad jūs saprotat šīs uz Cloudflare Worker balstītās novirzīšanas sistēmas jaudu un elastību, ir pienācis laiks to ieviest darbībā:
- Ja vēl neesat to izdarījis, reģistrējieties Cloudflare kontam un iepazīstieties ar Workers platformu.
- Ieviesiet šo sistēmu savām zīmola īsajām saitēm vai lielapjoma novirzīšanai.
- Eksperimentējiet ar mūsu apspriestajām uzlabotajām funkcijām, lai pielāgotu sistēmu savām īpašajām vajadzībām.
- Dalieties pieredzē vai uzdodiet jautājumus komentāru sadaļā zemāk. Jūsu atziņas varētu palīdzēt citiem sabiedrības locekļiem!
- Lai iegūtu sarežģītākus lietošanas gadījumus vai pielāgotas ieviešanas iespējas, apsveriet iespēju sazināties ar Cloudflare Workers ekspertu vai konsultāciju pakalpojumu.
Esiet zinātkārs, turpiniet mācīties un nevilcinieties pārkāpt robežas tam, kas ir iespējams, izmantojot tādus rīkus kā Cloudflare Workers.