← Cloudflare Workers VPC / workers-vpc
Začínáme
Tento návod vás provede vytvořením první Workers VPC Service, díky které bude váš Worker moci přistupovat k prostředkům ve vaší privátní síti.
Vytvoříte aplikaci Workers, ve své privátní síti vytvoříte Tunnel pro její připojení ke Cloudflare a poté nakonfigurujete VPC Services pro služby ve své privátní síti, ke kterým chcete přistupovat z Workers.
Předpoklady
Než začnete, ujistěte se, že jste splnili následující:
- Zaregistrujte si účet Cloudflare ↗.
- Nainstalujte
Node.js↗.
Správce verzí Node.js
Použijte správce verzí Node, jako je Volta ↗ nebo nvm ↗ abyste se vyhnuli problémům s oprávněními a mohli měnit verze Node.js. Wrangler, o kterém se dozvíte dále v této příručce, vyžaduje verzi Node 16.17.0 nebo novější.
Dále budete potřebovat:
- Přístup k privátní síti (vaše lokální síť, AWS VPC, Azure VNet, GCP VPC nebo síť on premise)
- Connectivity Directory Bind role pro navázání na existující VPC Services z Workers.
- Nebo Connectivity Directory Admin role pro vytváření VPC Services a navazování na ně z Workers.
1. Vytvořte nový projekt Worker
Vytvořte nový projekt Workeru pomocí nástroje Wrangler:
npm create cloudflare@latest -- workers-vpc-appPři nastavení vyberte následující možnosti:
- Pro S čím byste chtěli začít?, vyberte
Hello World example. - Pro Jakou šablonu chcete použít?, vyberte
Worker only. - Pro Jaký jazyk chcete použít?, vyberte
TypeScript. - Pro Chcete používat git pro správu verzí?, vyberte
Yes. - Pro Chcete nasadit svou aplikaci?, vyberte
No(před nasazením provedeme ještě několik změn).
Přejděte do adresáře svého projektu:
cd workers-vpc-app2. Nastavte Cloudflare Tunnel
Cloudflare Tunnel vytváří zabezpečené připojení z vaší privátní sítě ke Cloudflare. Tento tunel umožní Workers bezpečný přístup k vašim privátním prostředkům. Tunel můžete vytvořit na virtuálním počítači nebo v kontejneru ve vašem externím cloudu, případně pro účely tohoto návodu i na svém lokálním počítači.
-
Přejděte na Dashboard Workers VPC ↗ a vyberte Tunnels kartě.
-
Vyberte Vytvořit pro vytvoření nového tunelu.
-
Zadejte název tunelu (například
workers-vpc-tunnel) a vyberte Uložit tunel. -
Vyberte svůj operační systém a architekturu. Dashboard vám poskytne konkrétní instalační pokyny pro vaše prostředí.
-
Podle uvedených příkazů stáhněte a nainstalujte
cloudflared, a spusťte instalační příkaz služby s vaším jedinečným tokenem.
Dashboard potvrdí, jakmile se váš tunel úspěšně připojí.
Konfigurace vaší privátní sítě pro Cloudflare Tunnel
Jakmile je váš tunel připojen, musíte zajistit, aby měl přístup ke službám, k nimž chcete umožnit přístup svým Workers. Tunel by měl být nainstalován na počítači, který dokáže dosáhnout interních prostředků, jež chcete zpřístupnit službě Workers VPC. V externích cloudech to může znamenat konfiguraci Access-Control-Lists, Security Groups nebo VPC Firewall Rules, aby tunel mohl k požadovaným službám přistupovat.
3. Vytvořte VPC Service
Nyní, když je váš tunel spuštěný, vytvořte VPC Service, kterou mohou Workers použít k přístupu k vašim interním zdrojům:
-
Přejděte na Dashboard Workers VPC ↗ a vyberte VPC služby kartě.
-
Vyberte Vytvořit pro vytvoření nové VPC Service.
-
Zadejte Název služby pro vaši VPC Service (například
my-private-api). -
Vyberte svůj tunel z Tunnel rozbalovací nabídka, nebo vyberte Create Tunnel pokud potřebujete vytvořit nový.
-
Zadejte Hostitel nebo IP adresa vaší interní služby (například
localhost,internal-api.company.local, nebo10.0.1.50). -
Nakonfigurujte Porty. Vyberte jednu z možností:
- Použít výchozí porty pro standardní HTTP (80) a HTTPS (443)
- Uveďte hodnoty portů pro zadání vlastních portů HTTP a HTTPS
-
Nakonfigurujte DNS resolver. Vyberte jednu z možností:
- Použít tunel jako resolver pro použití vestavěného DNS překladu tunelu
- Vlastní resolver a zadejte IP adresu svého DNS resolveru (například
8.8.8.8)
-
Vyberte Vytvoření služby pro vytvoření vaší VPC Service.
Dashboard zobrazí vaši novou VPC Service s jedinečným ID služby. Toto ID služby si uložte pro další krok.
Pro službu HTTP:
npx wrangler vpc service create my-private-api \
--type http \
--tunnel-id <YOUR_TUNNEL_ID> \
--hostname <YOUR_HOSTNAME>Pro službu TCP (například databázi PostgreSQL):
npx wrangler vpc service create my-database \
--type tcp \
--tcp-port 5432 \
--app-protocol postgresql \
--tunnel-id <YOUR_TUNNEL_ID> \
--ipv4 <YOUR_IPV4_ADDRESS>Nahraďte:
<YOUR_TUNNEL_ID>s ID tunelu z kroku 2<YOUR_HOSTNAME>s hostname vaší interní služby (napříkladinternal-api.company.local)<YOUR_IPV4_ADDRESS>se soukromou IP adresou vaší služby (například10.0.1.50)
Můžete také:
- Vytvářejte služby pomocí IP adres tak, že nahradíte
--hostname <YOUR_HOSTNAME>hodnotou--ipv4 <YOUR_IPV4_ADDRESS>,--ipv6 <YOUR_IPV6_ADDRESS>, nebo obojí pro konfiguraci dual-stack - Vlastní porty pro služby HTTP zadáte přidáním
--http-port <PORT>a/nebo--https-port <PORT>(například--http-port 8080 --https-port 8443) - Režim ověřování certifikátu TLS nastavte pomocí
--cert-verification-mode(verify_full,verify_ca, nebodisabled)
Příkaz vám vrátí ID služby. Uložte si ho pro další krok.
Pokud narazíte na chyby oprávnění, přečtěte si Požadované role.
4. Nakonfigurujte svůj Worker
Přidejte VPC Service binding do konfiguračního souboru Wrangler:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "workers-vpc-app",
"main": "src/index.ts",
// Set this to today's date
"compatibility_date": "2026-08-28",
"vpc_services": [
{
"binding": "VPC_SERVICE",
"service_id": "<YOUR_SERVICE_ID>"
}
]
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "workers-vpc-app"
main = "src/index.ts"
# Set this to today's date
compatibility_date = "2026-08-28"
[[vpc_services]]
binding = "VPC_SERVICE"
service_id = "<YOUR_SERVICE_ID>"Nahraďte <YOUR_SERVICE_ID> s ID služby z kroku 3.
5. Napište kód svého Workeru
Upravte svůj Worker tak, aby používal binding VPC Service. Následující příklad:
export default {
async fetch(request, env, ctx): Promise<Response> {
const url = new URL(request.url);
// This is a simple proxy scenario.
// In this case, you will need to replace the URL with the proper protocol (http vs. https), hostname and port of the service.
// For example, this could be "http://localhost:1111", "http://192.0.0.1:3000", "https://my-internal-api.example.com"
const targetUrl = new URL(
`http://<ENTER_SERVICE_HOST>:<ENTER_SERVICE_PORT>${url.pathname}${url.search}`,
);
// Create new request with the target URL but preserve all other properties
const proxyRequest = new Request(targetUrl, {
method: request.method,
headers: request.headers,
body: request.body,
});
const response = await env.VPC_SERVICE.fetch(proxyRequest);
return response;
},
} satisfies ExportedHandler<Env>;6. Otestujte lokálně
Otestujte svůj Worker lokálně. Musíte přitom použít vzdálené VPC Services, a to buď pomocí Vzdálené vazby Workers jak bylo nastaveno ve vašem wrangler.jsonc konfigurační soubor, nebo pomocí npx wrangler dev --remote:
npx wrangler devNavštivte http://localhost:8787 pro otestování připojení vašeho Workeru k vaší soukromé síti.
7. Nasaďte svůj Worker
Jakmile je testování dokončeno, nasaďte svůj Worker:
npx wrangler deployVáš Worker je nyní nasazen a může bezpečně přistupovat k prostředkům vaší privátní sítě přes Cloudflare Tunnel. Pokud narazíte na chyby oprávnění, přečtěte si Požadované role.
Další kroky
- Prozkoumejte možnosti konfigurace pro pokročilá nastavení
- Nastavení tunely s vysokou dostupností pro produkční prostředí
- Zobrazit průvodci pro jednotlivé platformy pro AWS, Azure, GCP a Kubernetes
- Podívejte se na příklady pro běžné případy užití