🛠 Héberger un service web léger (nginx et conteneurs)

Orange Pi PC (Allwinner H3) · avance · Schéma : IMG-orangepi-pc-avance-3-opipc-serveur-web-leger.svg — Orange Pi PC sous Armbian servant nginx en service systemd derrière un routeur 10/100, conteneurs Docker optionnels (Pi-hole, Home Assistant), logs détournés vers RAM pour ménager la microSD.

Objetivos

Transformar la Orange Pi PC en un pequeño servidor permanente: 1 GB de RAM, cuatro Cortex-A7 y un enlace Ethernet de 100 Mbit/s bastan de sobra para nginx, un bloqueador de anuncios tipo Pi-hole o pequeños contenedores: los casos de uso que la documentación de Armbian documenta para esta placa. El verdadero asunto de un servidor sobre SBC no es el servidor, es la longevidad: microSD frágil y alimentación, de ahí log2ram y servicios sobrios.

Materiales

Código completo

  1. nginx estático como servicio systemd:
sudo apt install -y nginx
sudo tee /etc/nginx/sites-available/projet <<'EOF'
server {
    listen 80;
    server_name _;
    root /srv/www/projet;
    location / { try_files $uri $uri/ =404; }
    # Réduire les écritures disque : logs vers stderr (journald, log2ram)
    access_log /dev/stderr;
    error_log /dev/stderr;
}
EOF
sudo mkdir -p /srv/www/projet
echo '<h1>Orange Pi PC opérationnel</h1>' | sudo tee /srv/www/projet/index.html
sudo ln -sf /etc/nginx/sites-available/projet /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx
  1. Primer contenedor (el registro ARMv7 está indicado arm32v7/armhf):
sudo systemctl enable --now docker
docker run -d --name whoami --restart unless-stopped -p 8080:80 traefik/whoami
curl -s localhost:8080 | head -3
# Limiter l'empreinte : logs JSON sur petit fichier, rotation agressive
sudo tee /etc/docker/daemon.json <<'EOF'
{ "log-driver": "json-file", "log-opts": { "max-size": "1m", "max-file": "1" } }
EOF
sudo systemctl restart docker
  1. Copia de seguridad: tar de las configuraciones + tarjeta clonada regularmente (dd | gzip).

Verificación esperada

curl localhost devuelve la página; desde otra máquina, http://IP-de-la-carte también. docker ps muestra el contenedor en restart unless-stopped y se reinicia solo tras reboot. La temperatura permanece en reposo por debajo de la zona de throttling (nginx solo casi no calienta).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales