Proxy inverso para el protocolo Gemini | Programador Web Valencia

Proxy inverso para el protocolo Gemini

2 minutos

Gemini protocolo

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 esta 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 esta 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 esta preparado para manejar el protocolo Gemini por defecto, por lo que lo resolveremos instalar un módulo adicional para poder redireccionar puertos. Si estas 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;
        ssl_preread on;
    }
}

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 SSL, ya que Nginx no puede hacerlo por ti con la configuración actual. Te recomiendo utilizar Agata, un servidor Gemini escrito en Rust que crea y autofirma los certificados automáticamente.

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me invitas a un café? ☕

Puedes hacerlo usando el terminal.

ssh customer@andros.dev -p 5555

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario

Tal vez también te interese...