Servidor remoto tras un proxy inverso

Un proxy inverso con HTTPS publica el servidor local de otro equipo para usarlo desde cualquier navegador, sin túneles.

1. Cómo funciona

El servidor local corre en el equipo remoto como un servicio, escuchando solo en 127.0.0.1. Delante, en el mismo equipo, un proxy inverso (por ejemplo, Caddy) es la única puerta de entrada desde fuera: cifra la conexión con HTTPS y exige su propia clave. Las peticiones de ZeroChat las reconoce y las pasa al servidor local; el resto puede seguir yendo a otros servicios, como el servidor de modelos.

Hay dos barreras independientes:

Frente al túnel SSH, no hace falta un cliente SSH ni mantener una sesión abierta, y sirve igual desde el móvil, la tablet u otro ordenador.

2. Preparar el equipo remoto

El servidor local como servicio

Arranca zerochat con tu usuario, desde el directorio del proyecto, sin abrir el navegador y sin cerrarse al cerrar la pestaña:

zerochat --no-browser --keep-server

El proxy inverso

El proxy tiene que hacer tres cosas:

  1. Servir HTTPS con un certificado que el navegador acepte, porque la interfaz se carga desde GitHub Pages por HTTPS y el navegador bloquea las conexiones sin cifrar a otros equipos.
  2. Comprobar su clave y pasar las peticiones de ZeroChat al servidor local del propio equipo.
  3. Permitir las comprobaciones previas de CORS que el navegador hace antes de cada petición, que no llevan la clave.

El servidor local no necesita la clave del proxy: lo recomendable es que el proxy no se la reenvíe.

4. Identificación y seguridad

5. Situaciones habituales

SituaciónQué pasa
Conectar dice que no se puede alcanzar el servidorEl servidor remoto o el proxy no responden, o la clave del proxy es incorrecta: un proxy que no da pistas a quien no tiene la clave responde igual que si no hubiera nada. Revisa la URL y la clave.
La URL no se aceptaSolo se admite el origen: https://, el nombre y el puerto, sin ruta.
La página pide identificarseNo había sesión guardada en el navegador o el token del día ha caducado. Identifícate de nuevo.
Las herramientas fallan por autorización caducadaLos relojes del navegador y del equipo remoto difieren en más de 30 s. Activa la fecha y hora automáticas en los dos.