Proxy inverso para el protocolo Gemini

Read in English

Para redireccionar el tráfico de Gemini a un servidor específico, podemos crear un proxy inverso con Nginx de una manera relativamente sencilla. El caso de uso es el siguiente: Un dominio apunta al servidor A, pero el servidor Gemini está en el servidor B. En resumen, necesitamos redirigir el tráfico de Gemini de un servidor a otro.

Requisitos

  • Dominio apuntando a la IP del servidor. Por ejemplo, gemini.example.com apunta al servidor donde está Nginx instalado. En este caso, el servidor A.
  • Nginx instalado y funcionando. En caso contrario podemos instalarlo con apt install nginx si estamos en un sistema basado en Debian. Debe estar en el servidor A.
  • Servidor Gemini levantado. En este caso, el servidor B.

Si ya estamos preparados, podemos empezar.

Configuración de Nginx

Nginx no está preparado para manejar el protocolo Gemini por defecto, por lo que lo resolveremos instalando un módulo adicional para poder redireccionar puertos. Si estás acostumbrado a trabajar con comandos unix, también podrías utilizar socat o nc.

Instalamos el módulo con el siguiente comando, si usas Debian o Ubuntu:

apt install libnginx-mod-stream

Una vez instalado, podemos añadir la configuración necesaria para redirigir el tráfico de Gemini a un servidor específico.

Dentro de la configuración de Nginx, en /etc/nginx/nginx.conf, añadimos el siguiente bloque:

stream {
    upstream gemini {
        server 1.2.3.4:1965;
    }

    server {
        listen 1965;
        proxy_pass gemini;
    }
}

La dirección 1.2.3.4 es la IP del servidor donde queremos redirigir el tráfico (IP del servidor B). El puerto 1965 es el puerto por defecto del protocolo Gemini.

Guardamos los cambios y reiniciamos Nginx.

systemctl restart nginx

¡Ya hemos terminado! ¿Ves? No era tan complicado.

Recuerda que tu servidor Gemini debe gestionar los certificados TLS, ya que Nginx no puede hacerlo por ti con la configuración actual. Te recomiendo utilizar Agate, un servidor Gemini escrito en Rust que crea y autofirma los certificados automáticamente.

Sigue leyendo sobre Gemini

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?

This is how I keep writing without ads or paywalls.

Comments

There are no comments yet.

You may also like

Visitors in real time

You are alone: 🐱