Herramientas de usuario

Herramientas del sitio


tutoriales:configurarservidor

¡Esta es una revisión vieja del documento!


Configurar un servidor con Ollama

Para configurar un servidor con ollama hay que seguir los siguientes pasos:

Tarjeta gráfica

  • Instalar la tarjeta gráfica

	 
ubuntu-drivers devices	 
sudo apt install nvidia-driver-595-server-open	 
sudo reboot	 
nvidia-smi	 
sudo apt install nvtop	 
nvtop	 

CUDA

  • Instalar CUDA

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-toolkit-13-2

Ejecutar nvidia-smi y ver la versión máxima que soporta de CUCA. En este caso es CUDA 13.2

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.71.05              Driver Version: 595.71.05      CUDA Version: 13.2     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off |   00000000:01:00.0 Off |                  Off |
|  0%   43C    P8              9W /  450W |       1MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

  • El PATH

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

  • Comprobar que funciona:

nvcc --version

NVIDIA Container Toolkit

  • Añadir la clave GPG y el repositorio

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' |   sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

  • Instalar el toolkit

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

  • Configurar el runtime de Docker

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

  • Verificar

docker run --rm --gpus all ubuntu nvidia-smi

Zeroconf

Para que el servidor linux publique su nombre DNS en Multicast DNS o Bonjour (Apple) o Avahi (Linux).

sudo apt install avahi-daemon
sudo systemctl enable --now avahi-daemon

NGINX

  • Instalar NGINX


sudo apt install nginx
sudo systemctl status nginx

  • Crear el fichero /etc/nginx/sites-available/servicios.conf

# --- SERVICIO 1 ---
server {
    listen 80;
    server_name ollama.iabd2.cip.fpmislata.com;

    location / {
        proxy_pass http://127.0.0.1:11434;
                # Forzamos las cabeceras para que Ollama crea que la petición es local
        proxy_set_header Host "localhost";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # IMPORTANTE: A veces Ollama necesita que el Origin sea explícito
        proxy_hide_header 'Access-Control-Allow-Origin';
        add_header 'Access-Control-Allow-Origin' '*';
    }
}

# --- OTRO SERVICIO ---
server {
    listen 80;
    server_name OTROSERVICIO.iabd2.cip.fpmislata.com;

    location / {
        proxy_pass http://127.0.0.1:OTROPUERTO;
        include proxy_params;
    }
}

# --- SERVICIO POR DEFECTO (Opcional) ---
# Esto responde si alguien entra por IP o un dominio no configurado
server {
    listen 80 default_server;
    server_name _;
    return 444; # Cierra la conexión sin responder nada
}

Si quieres añadir otro servicio además de ollama, copia las líneas server y modifica el nombre de dominio y el puerto interno.
  • Modificar nginx.conf y añade la linea client_max_body_size 100M; es para permitir subir ficheros grandes.

http {
    sendfile on;
    tcp_nopush on;
    types_hash_max_size 2048;
    # server_tokens off;
    client_max_body_size 100M;
    ...
}

  • Finalizar la configuración

sudo ln -s /etc/nginx/sites-available/servicios.conf /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

  • Comprobar si la instalación es correcta

sudo nginx -t

  • Si es correcta, reiniciar NGINX

sudo systemctl reload nginx

Programas de seguridad

  • Evitar ataques de fuerza bruta.

sudo apt install fail2ban

  • Instalar automáticamente los parches de seguridad

sudo apt update && sudo apt install unattended-upgrades update-notifier-common -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

  • En /etc/apt/apt.conf.d/50unattended-upgrades descomentar las siguiente líneas y dejarlas como se indica:

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "06:00";
Unattended-Upgrade::Remove-Unused-Dependencies "true";

  • Comprobar si está bien configurado

sudo unattended-upgrades --dry-run --debug

Ollama

  • Instalar Ollama

curl -fsSL https://ollama.com/install.sh | sh

  • Comprobar que el servicio está activo y escuchando en el puerto 11434

sudo systemctl status ollama
curl http://127.0.0.1:11434

El instalador detecta la GPU NVIDIA automáticamente (por eso este paso va después de instalar los drivers). Para confirmar que Ollama usa la GPU, ejecuta nvtop mientras hay un modelo en marcha.
  • Descargar (pull) un modelo

ollama pull llama3.1

  • Comprobar los modelos descargados y probar uno

ollama list
ollama run llama3.1 "Hola, ¿funcionas?"

tutoriales/configurarservidor.1783546548.txt.gz · Última modificación: por Lorenzo