En aquest xicotet article explique com crear subdominis dins del panel de control de Cloudflare per a poder usar-los en un servidor dins d'un túnel cifrat de Cloudflare.
M'ha semblat molt fàcil i útil per a un tipus d'instal·lació com la que tinc amb el router 4G on no puc configurar la redirecció de ports i, gràcies amb Cloudflare podem tenir un o ilimitats dominis i albergar projectes en un servidor darrere d'un CG-NAT.
Configuració del subdomini en el dashboard de Cloudflare
Tenim dues opcions amb Cloudflare Tunnel. Per una banda, podem crear subdominis en el Tunnel propi (on tindrem tota la configuració de les peticions del tràfic en la web de Cloudflare, des de l'apartat Zero Trust) però, per altra banda, també podem fer-ho a l'antiga escola, és a dir, des de la gestió dels DNS de Cloudflare. Com que estic acostumat a gestionar DNS i que he passat la gestió d'uns dominis a Cloudflare, em sembla més senzill des de la gestió de DNS i no "inventar" altres coses. Principi KISS, Keep It Simple, Stupid.
Doncs, bé, anirem a la web de Cloudflare. Ens autenticarem i anirem a l'apartat on veiem el(s) nostre(s domini(s).
Afegirem una entrada, de tipo CNAME, amb nom "skatepark" i el valor serà EL_MEU_CODI..cfargotunnel.com. I desem aquesta configuració.
I ja ho tenim. Immediatament després de desar la pàgina, ja tindrem actiu el sudbomini "skatepark.alcosseb.re".
Configuració del subdomini en el nostre servidor
Ara, per últim, necessitem configurar el servidor per a que, per una banda el túnel accepte peticions d'eixe domini en el port 443/80 per a web, i per altra banda configurarem el servidor web (Nginx, en el meu cas) per a que sàpiga quina pàgina mostrar quan reba peticions baix eixe subdomini.
La configuració del túnel cloudflare en el servidor darrere del CG-NAT l'afegirem en el fitxer de configuració /home/joan/.cloudflared/config.yml de la següent manera:
tunnel: EL_MEU_ID
credentials-file: /home/joan/.cloudflared/EL_MEU_ID.json
#
ingress:
- hostname: www.alcosseb.re
service: http://localhost:80
#
- hostname: skatepark.alcosseb.re
service: http://localhost:80
#
- hostname: www.benicass.im
service: http://localhost:80
#
- hostname: ssh.alcosseb.re
service: tcp://localhost:22
#
- service: http_status:404
logfile: /home/joan/cloudflared.log
loglevel: debug
I a Nginx (/usr/local/etc/nginx/sites-available/skatepark.alcosseb.re) afegirem algo semblant a:
server {
server_name skatepark.alcosseb.re; # Replace with your IP or hostname
root /usr/local/www/skatepark.alcosseb.re;
index index.php index.html;
#
location / {
try_files $uri $uri/ =404;
}
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
I ja ho tenim, quan escrivim el nom del domini en un navegador web automàticament Cloudflare rebrà les peticions i les redireccionarà al nostre servidor darrere del CG-NAT, i Nginx ja gestionarà les peticions web dependent del nom del domini o subdomini:








