Prerequisitos

Cloudflare crear tunnel dashboard

Crear el tunnel (en este caso lo hare con Docker pero se puede usar en Windows, Mac, Debian Based, RedHat Based y Docker)

En primer lugar, creo un tunnel demo en el dashboard

Cloudflare crear tunnel token

Luego selecciono Docker para obtener el comando “docker run”:

Cloudflare Docker run

Este comando es bastante sencillo, ejecuta el comando de ejecución del túnel cloudflared con un token de credencial.

Ahora es el momento de exponer sus aplicaciones locales a Internet.

Es necesario crear la red “tunnel”

docker network create tunnel

Luego se puede ejecutar el siguiente comando para crear el contenedor “Cloudflared”

docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token Tokenentregadoporcloudflare

Una vez que el contenedor está funcionando, podemos ver el estado conectado en el dashboard. Cloudflare elegirá el centro más cercano a la máquina host.

Cloudflared Connected

Tunnel Apps

Haga clic en Siguiente en la pantalla anterior y se nos llevará a la página siguiente para crear nuestra primera ruta.

  • Nginx

Vamos a utilizar nginx como la primer aplicacion para la demo

Para esto vamos a ingresar en Public hostname, el nombre de: subdominio, dominio y path

En Service se configuran los servicios de backend al que queremos enrutar las solicitudes, vamos a iniciar nuestros contenedores sobre la red “tunnel” para que el contenedor “Cloudflared” encuentre al contenedor nginx, con el mismo nombre de host.

Cloudflared hostname and service

Existe mas info en esta documentacion(https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/local-management/ingress/#origin-configuration)

Si accedemos a https://nginx.p00lack.cc, obtendremos el error 502 porque aún no hemos iniciado nuestra aplicación.

Cloudflared error 502

Vamos a crear el contenedor nginx como se muestra a continuación.

docker run --detach \
  --network tunnel \
  --name nginx \
  nginx:alpine

Si actualizamos la página, podemos ver la página nginx predeterminada.

Cloudflared nginx