Variables de entorno y configuración del servicio de Ollama

Ollama no tiene un archivo de configuración tradicional; el comportamiento del servicio está controlado casi por completo por variables de entorno: dirección de escucha, ruta de modelos, contexto, concurrencia, proxy y depuración.

Este capítulo primero explica los métodos de configuración en las tres plataformas y luego aclara cada variable central en tres niveles: entrada de red, programación de solicitudes y ejecución de modelos.


Ubicación de las variables de configuración en el servicio

Primero establezcamos un mapa: la docena de variables de entorno no están al mismo nivel; cada una actúa en una etapa distinta del proceso del servicio.

Ollama 服务配置地图:网络入口、请求调度、模型运行三层

Para ver la lista completa de variables compatibles con la versión actual, ejecuta ollama serve --help.


Métodos para establecer variables de entorno en las tres plataformas

La misma variable se configura en entradas completamente diferentes según la plataforma; es donde los principiantes suelen atascarse.

macOS:launchctl

Cuando Ollama se ejecuta como aplicación, las variables de entorno deben inyectarse mediante launchctl; tras configurarlas, reinicia la aplicación para que surtan efecto:

Ejemplo

# Inyecta las variables una por una
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"

# Luego cierra y vuelve a abrir la aplicación de Ollama

Linux: anulación del servicio systemd

Ejemplo

# Abre el editor de anulación del servicio
sudo systemctl edit ollama.service

# Añade en el editor (nota: debe estar bajo la sección [Service]):
# [Service]
# Environment="OLLAMA_HOST=0.0.0.0:11434"

# Recarga y reinicia el servicio
sudo systemctl daemon-reload
sudo systemctl restart ollama

Windows: Variables de entorno del sistema

En el menú Inicio, busca "variables de entorno", selecciona "Editar las variables de entorno de su cuenta", crea o edita la variable y guarda.

Paso clave: primero sal de Ollama en la bandeja; después de guardar, reinícialo desde el menú Inicio para que las nuevas variables surtan efecto en el nuevo proceso.

Además, hay un archivo de configuración JSON server.json (ubicado en ~/.ollama/) para algunas configuraciones de tipo conmutador; por ejemplo, para desactivar las funciones en la nube escribe {"disable_ollama_cloud": true}. La gran mayoría de la configuración sigue rigiéndose por las variables de entorno.


Entrada de red: HOST, ORIGINS y proxy

OLLAMA_HOST: permite que la red local acceda a tus modelos

Por defecto solo escucha en 127.0.0.1, por lo que solo está disponible localmente; si quieres que otros dispositivos de la red local lo usen, cambia para que escuche en todas las interfaces de red:

Ejemplo

# Escucha en todas las interfaces de red (accesible desde la red local)
OLLAMA_HOST=0.0.0.0:11434 ollama serve

# Verificación desde otro dispositivo (sustituye por tu IP real)
curl http://192.168.1.100:11434/api/version

Exponer el servicio a la red local equivale a dejarlo accesible sin autenticación para todos los dispositivos de la misma subred; en una red doméstica puede ser aceptable, pero en una red corporativa es imprescindible combinarlo con reglas de firewall o un proxy inverso (se trata en detalle en el capítulo de despliegue privado).

OLLAMA_ORIGINS: permitir solicitudes entre dominios (CORS)

Ollama, por defecto, solo acepta solicitudes de origen cruzado desde 127.0.0.1 y 0.0.0.0; cuando una página web o una extensión del navegador se conecta directamente a la API local, debes permitirlo explícitamente:

Ejemplo

# Permite todas las extensiones del navegador
OLLAMA_ORIGINS=chrome-extension://*,moz-extension://*,safari-web-extension://* ollama serve

Proxy: solo HTTPS_PROXY

La descarga de modelos se realiza mediante HTTPS saliente; en entornos con restricciones de red, basta con usar HTTPS_PROXY para apuntar al proxy.

Configura únicamente HTTPS_PROXY, no HTTP_PROXY: Ollama no descarga modelos mediante HTTP; añadir un proxy HTTP podría incluso interrumpir la conexión entre cliente y servidor. En Docker, pasa -e HTTPS_PROXY=... al iniciar el contenedor; si el proxy usa un certificado autofirmado, también debes instalar el certificado CA en el sistema (o incluirlo en la imagen).


Ejecución de modelos: ruta, contexto y persistencia

OLLAMA_MODELS: guardar los modelos en otra unidad

Los modelos se almacenan por defecto en el directorio del usuario; las rutas en las tres plataformas son las siguientes:

PlataformaRuta de modelos por defecto
macOS~/.ollama/models
Linux/usr/share/ollama/.ollama/models
WindowsC:\Users\<nombre de usuario>\.ollama\models

Basta con apuntar OLLAMA_MODELS al nuevo directorio para migrarlo por completo; una vez movidos los archivos de modelos descargados, pueden usarse directamente.

Ejemplo

# Ejemplo en Linux: migrar a un disco de datos de gran capacidad
OLLAMA_MODELS=/data/ollama-models ollama serve

# Nota: en la instalación estándar de Linux, el servicio se ejecuta con el usuario ollama
# Es necesario transferir la propiedad del nuevo directorio; de lo contrario, el servicio no tendrá permisos de lectura y escritura
sudo chown -R ollama:ollama /data/ollama-models

OLLAMA_CONTEXT_LENGTH: contexto global

Establece la longitud de contexto predeterminada para todos los modelos; se aplica cuando no se especifica una distinta a nivel de modelo o de solicitud:

Ejemplo

# Valor predeterminado global de 8K
OLLAMA_CONTEXT_LENGTH=8192 ollama serve

La prioridad, de mayor a menor, es: options.num_ctx de la solicitud API, PARAMETER num_ctx en el Modelfile, esta variable de entorno y el valor predeterminado de nivel automático según la memoria de video (VRAM).

OLLAMA_KEEP_ALIVE: duración de persistencia global

Ajusta de forma uniforme el tiempo que el modelo permanece cargado; el formato de valores es el mismo que el parámetro keep_alive de la API:

Ejemplo

# Valores comunes: 300 (segundos) / "10m" / "24h" / -1 siempre cargado / 0 descargar al terminar
OLLAMA_KEEP_ALIVE=30m ollama serve

El keep_alive pasado individualmente en las solicitudes API tiene prioridad sobre este valor global, lo que permite una estrategia por niveles como "10 minutos global, modelos importantes siempre cargados".


Programación de solicitudes: el trío de concurrencia

Ollama admite dos niveles de concurrencia: varios modelos cargados simultáneamente y un solo modelo procesando varias solicitudes en paralelo; cada nivel está controlado por una variable.

VariableValor predeterminadoFunción
OLLAMA_NUM_PARALLEL1Número de solicitudes que un solo modelo procesa simultáneamente; la memoria necesaria se amplía según este valor × la longitud de contexto.
OLLAMA_MAX_LOADED_MODELS3 × número de GPUs (3 para inferencia en CPU)Número total de modelos que se permite cargar simultáneamente, siempre que quepan en la memoria de video / RAM.
OLLAMA_MAX_QUEUE512Número máximo de solicitudes en cola cuando el servicio está ocupado; si se supera, se devuelve 503 directamente.

Merece la pena entender la lógica de programación: cuando hay suficiente memoria de video, el modelo procesa las solicitudes en paralelo; cuando no hay suficiente, las nuevas solicitudes hacen cola y esperan a que los modelos ociosos se descarguen para liberar espacio.

NUM_PARALLEL es la variable con la que es más fácil cometer errores: establecerla en 4 significa que la caché de contexto se multiplica por 4, la memoria de video se cuadruplica de inmediato y el modelo podría ser expulsado de la GPU. El método de planificación para instancias compartidas por múltiples usuarios se desarrolla en el capítulo de despliegue privado.


Depuración y registros: OLLAMA_DEBUG

El primer paso para solucionar problemas siempre es activar la depuración y revisar los registros.

Ejemplo

# Activa el registro de depuración
OLLAMA_DEBUG=1 ollama serve

Para activar la depuración en la aplicación gráfica de Windows: primero sal de la aplicación desde la bandeja y luego ejecuta en PowerShell:

Ejemplo

$env:OLLAMA_DEBUG="1"
& "ollama app.exe"

Resumen de las ubicaciones de registros en los cuatro entornos:

EntornoUbicación de registros
macOS~/.ollama/logs/server.log
Linux(systemd)journalctl -u ollama --no-pager --follow --pager-end
Windows%LOCALAPPDATA%\Ollama\server.log
Dockerdocker logs <nombre del contenedor> (stdout/stderr)

Referencia rápida de otras variables útiles

Las demás variables suelen estar ligadas a escenarios específicos; la explicación completa por capítulos se desarrolla en los temas correspondientes. Aquí solo establecemos un índice.

VariableValor de ejemploFunción
OLLAMA_FLASH_ATTENTION1 / 0Forzar la activación / desactivación de Flash Attention; ahorra memoria de video de forma significativa en contextos largos (detallado en el capítulo de GPU).
OLLAMA_KV_CACHE_TYPEq8_0 / q4_0Tipo de cuantización de la caché KV; requiere combinarse con Flash Attention (detallado en el capítulo de GPU).
OLLAMA_VULKAN0Desactivar el backend Vulkan (interruptor cuando Vulkan presenta anomalías).
OLLAMA_LLM_LIBRARYcpu_avx2Forzar la biblioteca de inferencia específica, omitiendo la detección automática.
OLLAMA_TMPDIR/data/tmpCambiar la ubicación del directorio temporal (cuando /tmp del sistema está montado con noexec).
OLLAMA_NO_CLOUD1Deshabilitar los modelos en la nube y la búsqueda en línea; modo puramente local.
Otras extensiones