Caddy (tīmekļa serveris)

Caddy ir paplašināms, starpplatformu, atvērtā pirmkoda tīmekļa serveris, kas rakstīts Go programmēšanas valodā.

Caddy pamatā ir paplašināma platforma pakalpojumu izvietošanai, izmantojot vienotu konfigurāciju, ko var atjaunināt tiešsaistē ar REST API. Caddy oficiālajā versijā iekļauti standarta moduļi, kas nodrošina HTTP serveri, TLS automatizāciju un PKI funkcijas. Caddy zināms galvenokārt ar automātiskās HTTPS funkcionalitāti.

 Arhitektūra 
Caddy organizēts trīs galvenajās komponentēs: komandrinda, kodola bibliotēka un konfigurācijas moduļi. Komandrinda ir paplašināma saskarne programmas izpildei — tā ļauj ielādēt konfigurācijas datnes, palaist dažādus režīmus un pārvaldīt spraudņus. Kodola bibliotēkai ir API konfigurācijas ielādēšanai, izlādēšanai un pārvaldīšanai, taču pati par sevi tā nedara neko īpaši noderīgu.

Lielāko daļu Caddy funkcionalitātes nodrošina moduļi — spraudņi, kas paplašina Caddy konfigurācijas struktūru. Piemēram, HTTP serveris ir modulis. Caddy moduļi nodrošina dažādus pakalpojumus, tīmekļa standartus un citas funkcijas.

Caddy ievade ir JSON konfigurācijas dokuments, ko saņem caur RESTful HTTP API. Ja nav pieejams HTTP klients, konfigurācijas datņu ielādēšanai var izmantot Caddy komandrindas saskarni. Konfigurācijas adapteri ļauj konvertēt citus konfigurācijas formātus uz JSON. Esošie adapteri ietver Caddyfile (ko komandrinda pilnībā atbalsta), kā arī YAML, TOML, nginx un vairākus citus formātus.

Spraudņi tiek instalēti, tos statiski kompilējot tieši Caddy binārajā failā. Bez spraudņiem Caddy pamata konfigurācija piedāvā tikai administrēšanas un žurnalēšanas opcijas. Visu pārējo funkcionalitāti nodrošina moduļi. Caddy oficiālajā versijā pieejami desmitiem standarta moduļu; citus var pievienot no projekta vietnes, izmantojot xcaddy komandrindas rīku vai manuāli kompilējot pielāgotu versiju.

 HTTP serveris 
HTTP serveris ir viens no standarta moduļiem, kas iekļauts Caddy oficiālajā versijā. To galvenokārt izmanto kā statisku datņu serveri un slodzes līdzsvarojošu reverso starpniekserveri. Lai gan Caddy HTTP pamatfunkcijas izmanto Go standarta bibliotēkas realizāciju, daudzi uzlabojumi un pielāgojumi ir pieejami kā starpprogrammatūra un konfigurējami ar parametriem.

 Automātiskais HTTPS 
Pēc noklusējuma TLS tiek lietots automātiski, ja konfigurācijā norādīts domēna vārds vai IP adrese. Caddy automātiski iegūst un atjauno sertifikātus visiem konfigurētajiem resursdatoriem. Kad automātiskais HTTPS ir aktivizēts šādā veidā, Caddy arī pārvirza HTTP pieprasījumus uz atbilstošo HTTPS atrašanās vietu.

Lai automātiski iegūtu TLS sertifikātus, Caddy realizē ACME protokolu, kas ļauj tam sazināties ar tādiem pakalpojumiem kā Let's Encrypt.

 Izstrāde 
Caddy izstrāde Git repozitorijā sākās 2014. gadā.

Caddy versiju 1.0 izlaida . Tajā brīdī projektam bija vairāk nekā 250 līdzautoru.

Caddy versiju 2 izlaida . Ars Technica recenzenti atzīmē, ka Caddy konfigurācija joprojām ir vienkāršāka nekā Apache, lai gan 2. versija nav savietojama ar iepriekšējo.

 Jaunākās versijas 
Caddy versijā 2.10, kas izlaista 2025. gada aprīlī, pievienoja pilnībā automatizētu Encrypted ClientHello (ECH) atbalstu, pēckvantuma atslēgu apmaiņu (x25519mlkem768) un ACME profilu atbalstu, kas ļauj iegūt sertifikātus ar īsāku derīguma termiņu.

 izlaida Caddy 2.11.0-beta.2, kas iezīmēja nozīmīgu pagrieziena punktu — tā bija pirmā versija, ko izveidoja ar jaunu, automatizētu laidienu procesu. Šī versija ietver ECH atslēgu rotācijas iespējas, uzlabotu žurnalēšanu un Windows pakalpojumu statusa paziņojumus.

 Salīdzinājums ar citiem serveriem 
Salīdzinājumā ar nginx un Apache, Caddy izceļas ar automātisko HTTPS un vienkāršāku konfigurāciju, taču var būt nedaudz lēnāks augstas noslodzes scenārijos. Caddy ir īpaši piemērots personīgām vietnēm, API vārtejām un mikropakalpojumu arhitektūrām, kur būtiska ir lietošanas vienkāršība un moderno protokolu atbalsts.

 Atvasinātie projekti 
 CoreDNS — Cloud Native Computing Foundation projekts, kas balstīts uz Caddy arhitektūru.

 Atsauces 

 Ārējās saites 


 Caddy vietnē GitHub

Kategorija:Brīvā programmatūra
Kategorija:Tīmekļa serveri