Vissza az eszközökhöz

Webfejlesztés

Cloudflare

A Cloudflare adja a domainjeink hitelesítő DNS-ét, a fordított proxyt és a CDN-t, a Tunnel pedig nyilvános bejövő port nélkül teszi elérhetővé a belső szolgáltatásokat.

4 perc olvasás

A Cloudflare a domainjeink hitelesítő DNS-szolgáltatója, és a webes forgalmat a saját globális hálózatán keresztül vezeti tovább az eredeti szerverhez. A zónák rekordjai itt élnek, a webes forgalmat kiszolgáló A, AAAA és CNAME rekordok pedig proxyn keresztül mennek. Ilyenkor a DNS-válasz nem az eredeti IP-címet, hanem a Cloudflare anycast címeit adja vissza, így a HTTP és HTTPS kérések a Cloudflare hálózatán haladnak át. A DNS-only rekord ezzel szemben a szerver valódi címét szolgálja ki, ami láthatóvá teszi az origin címét, és HTTP-analitika sem készül róla. Ezért minden webes forgalmat kiszolgáló rekordunkat proxyzva tartjuk.

A proxynak következményei is vannak: a proxyzott kérésekre a Cloudflare saját konfigurációja érvényes, a kérés- és válaszméretekre csomagtól függő korlátok vonatkoznak, és a Cloudflare és az origin között alapértelmezett válaszidő-korlát fut.

Zóna, DNS és proxy

  • Csak IP-cím-feloldásra használt rekord proxyzható, azaz A, AAAA és CNAME; az MX és a TXT mindig DNS-only marad.
  • Ha ugyanazon a néven több A vagy AAAA rekord van, és legalább az egyik proxyzott, a Cloudflare mindet proxyzottként kezeli.
  • A proxyzott rekord élettartama automatikus, 300 másodperc, és ez nem szerkeszthető. A rövid TTL miatt a feloldók legfeljebb ennyi ideig őrzik a régi címet.
  • A CNAME láncokat a Cloudflare kilapítja a gyorsabb feloldás érdekében, a proxyzott CNAME rekordok alapból így viselkednek.
  • A zónát a regisztrátornál delegáljuk: a névszerverek a Cloudflare-hez mutatnak, az API tokenek és a hozzáféréskezelés account szinten él.
  • Az origin felé menő forgalom így a saját nginx fordított proxyig a Cloudflare hálózatán át érkezik.

TLS módok

A zóna SSL/TLS titkosítási módja két kapcsolatot szabályoz egyszerre: a látogató és a Cloudflare közötti, valamint a Cloudflare és az origin szerver közötti szakaszt.

  • Off: egyik szakaszon sincs titkosítás, minden sima HTTP-n megy.
  • Flexible: a látogató és a Cloudflare között van HTTPS, a Cloudflare és az origin között viszont titkosítatlan HTTP, ezért origin tanúsítvány nem is kell hozzá. Csak a 443-as porton érvényes, más porton Full módra esik vissza, és az Authenticated Origin Pull sem működik ilyen beállítás mellett. Személyes adatot vagy bejelentkezést kezelő oldalhoz a dokumentáció sem javasolja.
  • Full: mindkét szakasz titkosított, de az origin tanúsítványát a Cloudflare nem ellenőrzi, így lejárt, önaláírt vagy a hostnévre nem illeszkedő tanúsítvány is átmegy.
  • Full (strict): az origin tanúsítványnak érvényesnek kell lennie, nyilvánosan megbízható hitelesítésszolgáltatótól vagy a Cloudflare Origin CA-tól kell származnia, és a CN vagy SAN mezőben egyeznie kell a kért hostnévvel. Ha ez nem teljesül, a látogató 526-os hibát kap.
  • Alapértelmezésben Automatic SSL/TLS fut, ami mérések alapján választja ki a legszigorúbb működő módot, és fokozatosan, hiba esetén visszaállva vezeti be a váltást.

Tunnel: belső szolgáltatás bejövő port nélkül

A Cloudflare Tunnel akkor is összeköti az erőforrásokat a Cloudflare hálózatával, ha nincs nyilvánosan routolható IP-cím. A gépen futó cloudflared démon kifelé épít kapcsolatot a Cloudflare-hez, ezért a tűzfalon nem kell bejövő portot nyitni, csak a kimenő forgalmat engedni. A kapcsolat felépülte után a forgalom mindkét irányban a tunnelen keresztül folyik.

  • A tunnel egy UUID-val azonosított, tartós objektum, ami az origin és a Cloudflare közötti logikai kapcsolat.
  • Egy tunnelhez több cloudflared folyamat, azaz connector is futhat, és mindegyik a hozzá legközelebbi Cloudflare adatközponthoz kapcsolódik.
  • A publikált alkalmazás útvonala hostnevet rendel a belső szolgáltatás címéhez: a Service URL tipikusan http://localhost:8000 formában adja meg a protokollt, a hosztot és a portot.
  • A tunnel állapota a dashboardon látszik: Healthy, Down, Degraded vagy Inactive.
  • Ha a publikált hostnév elé bejelentkezés kell, az Access alkalmazással tehető rá szabály.
  • Nálunk a cloudflared a többi szolgáltatáshoz hasonlóan Docker alatt fut.

Workers: kód a peremen

A Cloudflare Workers szerverless platform, amelyen az alkalmazás kódja a Cloudflare globális hálózatán fut, telepítése pedig egyetlen paranccsal elintézhető. A fejlesztéshez és a telepítéshez a Wrangler CLI használható, a kód pedig JavaScriptben, TypeScriptben, Pythonban vagy Rustból fordított WebAssemblyben írható.

  • A Worker HTTP-kéréseket fogad, és választ ad vissza; az útvonalak, a fejlécek és az átirányítások a saját kódban dőlnek el.
  • A hosszú futású munka a Workflows alá tartozik, a háttérben kiszolgált kérések késleltetését pedig a Smart Placement hangolja.
  • A bindings mechanizmuson keresztül további szolgáltatások érhetők el: D1 relációs adatbázis, KV kulcs-érték tároló, R2 objektumtár, Queues, Hyperdrive, Vectorize és Workers AI.
  • A naplók a dashboardon vagy a wrangler tail paranccsal olvashatók.
  • Statikus oldalhoz nem feltétlenül kell Worker: az Astro build kimenete fájlként is kiszolgálható, a Worker akkor kerül elő, ha a peremen kell dönteni.

Tovább olvasás

A CyberElectrónál a Cloudflare a hitelesítő DNS és a bejövő forgalom kapuja: a zónák itt élnek, a webes rekordok proxyn keresztül mennek, a belső szolgáltatásokat pedig a Tunnel teszi elérhetővé nyilvános bejövő port nélkül.

Címkék
  • DNS
  • proxy
  • TLS
  • Tunnel
  • perem