~/tools / Ejecutar un LLM local en tu servidor / Ollama nginx Config Generator

Ollama nginx Config Generator — Crea una configuración de nginx para Ollama: HTTPS, autenticación básica, lista de permitidas, streaming

Crea un bloque server de nginx que pone Ollama detrás de un proxy: HTTPS con tu certificado, una redirección desde el puerto 80, una contraseña con autenticación básica, una lista de direcciones permitidas y ajustes para que las respuestas en streaming lleguen a medida que se escriben. Parte del ejemplo de proxy de las preguntas frecuentes oficiales de Ollama y usa solo directivas de la documentación de nginx. Nada sale de tu navegador.

Servidor
Quién puede acceder

Con contraseña y lista de permitidas, una petición debe pasar ambas (el satisfy de nginx vale all por defecto).

Streaming y límites

Configuración de nginx

Guárdala como /etc/nginx/conf.d/ollama.conf. La combinación de directivas es nuestra, así que ejecuta siempre nginx -t antes de recargar.

server {
    listen 80;
    server_name ollama.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name ollama.example.com;

    ssl_certificate /etc/ssl/ollama.crt;
    ssl_certificate_key /etc/ssl/ollama.key;

    auth_basic "ollama";
    auth_basic_user_file /etc/nginx/ollama.htpasswd;

    location / {
        proxy_pass http://localhost:11434;
        proxy_set_header Host localhost:11434;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_read_timeout 300s;
    }
}

Comandos

htpasswd te pide la contraseña. Su opción -c crea un archivo nuevo y un archivo existente se reescribe, así que omítela cuando añadas un segundo usuario. En Ubuntu, htpasswd está en el paquete apache2-utils.

sudo htpasswd -c /etc/nginx/ollama.htpasswd alice
sudo nginx -t
sudo nginx -s reload

Directivas y valores por defecto según la documentación de nginx y el ejemplo de proxy de las preguntas frecuentes de Ollama, comprobados el 2026-11-03. Preguntas frecuentes de Ollama: servidor proxy / nginx: ngx_http_proxy_module

Todo se hace en tu navegador. Nada de lo que introduces se envía a ningún sitio.

Por defecto, Ollama escucha solo en el propio servidor, y las preguntas frecuentes de Ollama no describen ninguna autenticación para él. Cuando otra máquina tiene que acceder, las preguntas frecuentes remiten a un servidor proxy como nginx, con un ejemplo que reenvía las peticiones a http://localhost:11434 y establece la cabecera Host en localhost:11434. Esta herramienta se basa en ese ejemplo con directivas de la documentación de nginx: listen 443 ssl con un certificado y una clave, un servidor en el puerto 80 que redirige a HTTPS, auth_basic con un archivo de contraseñas, allow y deny para las direcciones, client_max_body_size, proxy_http_version 1.1, proxy_buffering off para el streaming y proxy_read_timeout para una primera respuesta lenta. La combinación es nuestra, no un único ejemplo de los documentos, así que la probamos: la salida pasó nginx -t en la imagen oficial de nginx 1.29.8 y en nginx 1.24.0 de Ubuntu 24.04, y a través de nginx 1.29.8 llegamos a Ollama 0.40.11 solo con la contraseña correcta, vimos llegar una respuesta en streaming en 81 fragmentos y obtuvimos 403 desde una dirección fuera de la lista de permitidas.

La lógica principal de esta herramienta es de código abierto, con licencia MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-nginx.ts

Casos de uso

  • Acceder a Ollama en un VPS desde tu portátil u otro servidor, con contraseña y HTTPS
  • Dejar que solo la dirección de tu oficina o de tu casa llegue a Ollama, además de la contraseña
  • Corregir respuestas que llegan todas de golpe, o conexiones que se cierran mientras un modelo grande aún se está cargando

Cómo usarlo

  1. Introduce el nombre de dominio y, si Ollama no está en el mismo servidor en el puerto 11434, la dirección a la que nginx debe reenviar. Activa HTTPS e introduce las rutas de tu certificado y de tu clave privada.
  2. Elige cómo limitar el acceso: una contraseña, una lista de direcciones permitidas o ambas. Con ambas, una petición debe pasar las dos, porque la directiva satisfy de nginx vale all por defecto. Deja el streaming activado y aumenta el tiempo de espera si tu modelo tarda en cargarse.
  3. Guarda la configuración como /etc/nginx/conf.d/ollama.conf, crea el archivo de contraseñas con el comando htpasswd que se muestra y ejecuta nginx -t y recarga nginx.

FAQ

¿Por qué la cabecera Host es siempre localhost:11434?

Eso es lo que establece el ejemplo de las preguntas frecuentes de Ollama. Ollama rechaza las peticiones cuya cabecera Host nombra un host que no conoce: cuando probamos Ollama 0.40.11, Host: ollama.example.com obtuvo 403 mientras que localhost:11434 e incluso localhost:9999 obtuvieron 200. Enviar localhost:11434 hace que la petición se acepte sea cual sea el nombre que usó el visitante.

¿Por qué desactivar proxy_buffering?

Ollama envía una respuesta fragmento a fragmento. La documentación de nginx dice que cuando el almacenamiento en búfer está desactivado, la respuesta se pasa al cliente de forma síncrona, inmediatamente según se recibe; cuando está activado, nginx guarda primero la respuesta en búferes. Con él desactivado, nuestra respuesta de prueba llegó en 81 fragmentos a lo largo de unos seis segundos.

¿Qué cambia proxy_read_timeout?

La documentación de nginx dice que el tiempo de espera, de 60 segundos por defecto, se aplica solo entre dos lecturas sucesivas, no a toda la respuesta, y que la conexión se cierra si el servidor proxificado no envía nada dentro de ese plazo. Nuestra interpretación, no una afirmación de los documentos: un modelo que aún se está cargando en memoria puede quedarse en silencio más de un minuto en un servidor pequeño, así que un valor mayor evita que se cierre la conexión.

¿Qué archivo lee nginx?

Tanto la imagen oficial de nginx como el paquete nginx de Ubuntu 24.04 incluyen /etc/nginx/conf.d/*.conf dentro del bloque http de nginx.conf, así que se lee un archivo guardado ahí. Otras instalaciones pueden usar un directorio distinto; comprueba las líneas include de tu nginx.conf.

¿Cómo creo el archivo de contraseñas?

La documentación de nginx nombra la utilidad htpasswd de Apache y openssl passwd, sin dar comandos. La herramienta muestra htpasswd -c con el archivo y el nombre de usuario que introdujiste. En Ubuntu, htpasswd viene en el paquete apache2-utils. La documentación de Apache dice que -c crea el archivo y que un archivo existente se reescribe y se trunca, así que omite -c cuando añadas un segundo usuario.

¿Se envía algo a un servidor?

No. La configuración se compone en tu navegador.

Artículos relacionados

Relacionados