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.
{{ comments.length }} comentarios