Un amigo quiere corregir tu publicación de blog en progreso, pero su vista previa solo se ejecuta en localhost:8080. Varias herramientas pueden ayudar. Algunas se ejecutan como un servicio comercial, como ngrok o Cloudflare Quick Tunnels. Algunas son autohospedables pero requieren un cliente específico, como frp o localtunnel. Algunas solo requieren un cliente SSH sencillo pero dependen de un servidor SSH específico, como sish. Implementemos una solución autohospedada usando solo Open SSH y nginx!
Primero, reenviamos las conexiones desde un puerto en un servidor remoto a tu servicio local: `$ ssh -N -R 0:localhost:8080 web02.luffy.cx`. Cuando especificas `0` como el puerto remoto, el servidor asigna un puerto libre, como 41535. Luego, configuramos nginx para que proxyee las solicitudes desde `https://p41535.ssh.luffy.cx` a `http://127.0.0.1:41535` usando un bloque de servidor que coincida con el puerto en el nombre de dominio.
También necesitamos agregar registros DNS para `*.ssh.luffy.cx` y obtener un certificado comodín a través de Let’s Encrypt. En mi caso, Nix OS obtiene los certificados automáticamente. El control de acceso se logra usando el módulo ngx_http_secure_link_module, que calcula un hash sobre un conjunto de valores, incluyendo un secreto, y lo compara con el hash de la solicitud. El hash está codificado en base64 y se coloca en la URL como nombre de usuario, junto con su marca de tiempo de expiración.
Entidades clave: Empresas: Cloudflare, Let's Encrypt | Ubicaciones: localhost:8080, web02.luffy.cx, p41535.ssh.luffy.cx, ssh.luffy.cx, acme.luffy.cx, Route 53
Fuente: Hacker News · Resumido por HeadlinesBriefing