Introduzione
Configurare e gestire un ambiente self-hosted può essere un’impresa gratificante, specialmente quando utilizzi un Virtual Private Server (VPS) per ospitare le tue applicazioni. Traefik, un moderno reverse proxy e bilanciatore di carico per microservizi, può semplificare le tue esigenze di routing. In questa guida, esploreremo come configurare Traefik per gestire automaticamente i certificati SSL per tutte le tue applicazioni Docker su un VPS.
Configurazione di Traefik sul Tuo VPS
Segui questi passaggi per far partire Traefik sul tuo VPS.
Requisiti
- Un VPS (controlla il nostro confronto VPS completo)
- Docker e Docker Compose installati sul tuo VPS
- Conoscenze di base di Docker e networking
Passo 1: Scegliere il Tuo Fornitore di VPS
Selezionare il giusto fornitore di VPS influisce sulla tua esperienza di self-hosting. Ecco un confronto dei principali fornitori:
| Fornitore | Costo Mensile (EUR/USD) | Note |
|---|---|---|
| Contabo VPS | 5,99 EUR | Buone opzioni di CPU e storage |
| Hetzner Cloud | 4,15 EUR | Economico con ottime specifiche |
| DigitalOcean | 6 USD | Ideale per sviluppatori con regioni |
| Vultr | 6 USD | Opzioni di fatturazione flessibili |
| Linode | 5 USD | Ottimo supporto e community |
Passo 2: Installare Docker e Docker Compose
Per la maggior parte delle distribuzioni Linux, puoi installare Docker e Docker Compose utilizzando i seguenti comandi:
# Aggiorna l'indice dei pacchetti
sudo apt-get update
# Installa Docker
sudo apt-get install -y docker.io
# Installa Docker Compose
sudo apt-get install -y docker-compose
Passo 3: Configurazione della Rete Docker
Crea una rete Docker per Traefik e le tue app:
docker network create web
Passo 4: Configurazione di Traefik
Per installare Traefik, crea una directory per esso:
mkdir traefik && cd traefik
Ora crea un file docker-compose.yml con il seguente contenuto:
version: '3.7'
services:
reverse_proxy:
image: traefik:v2.5
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=your-email@example.com"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./letsencrypt:/letsencrypt"
networks:
- web
networks:
web:
external: true
Assicurati di sostituire [email protected] con il tuo vero indirizzo email per le notifiche di Let’s Encrypt.
Passo 5: Avviare Traefik
Esegui il seguente comando per avviare Traefik:
docker-compose up -d
Puoi verificare che Traefik sia in esecuzione accedendo a http://YOUR_VPS_IP:8080 dove troverai il dashboard di Traefik.
Passo 6: Distribuzione di Applicazioni Docker
Con Traefik in esecuzione, puoi distribuire altre applicazioni Docker utilizzando etichette per integrarle con Traefik per il routing e SSL. Ecco un esempio di configurazione di un’applicazione:
version: '3.7'
services:
my_app:
image: my_app_image
labels:
- "traefik.enable=true"
- "traefik.http.routers.my_app.rule=Host(`yourdomain.com`)"
- "traefik.http.routers.my_app.entrypoints=websecure"
- "traefik.http.routers.my_app.tls=true"
- "traefik.http.routers.my_app.tls.certresolver=myresolver"
networks:
- web
Passo 7: Accedere alla Tua Applicazione
Con la tua applicazione distribuita, puoi accedervi in modo sicuro tramite https://yourdomain.com.
FAQ
Cosa fare se la mia applicazione non ha un dominio o sottodominio?
Utilizzare Traefik richiede di impostare un dominio o un sottodominio per l’emissione di SSL tramite Let’s Encrypt. Se ti manca un dominio, considera di registrarne uno tramite un registrar di domini. Un’altra opzione è utilizzare un servizio di DNS dinamico, che molti fornitori supportano, consentendoti di instradare il traffico in modo affidabile senza un dominio statico.
Come gestisce Traefik i certificati SSL?
Traefik si integra perfettamente con Let’s Encrypt, un’autorità di certificazione automatica che emette certificati SSL gratuitamente. Configurando Traefik con impostazioni specifiche nel file docker-compose.yml come mostrato sopra, richiede e rinnova automaticamente i tuoi certificati SSL. Questo garantisce che le tue connessioni alle applicazioni Docker rimangano sicure senza intervento manuale.
Traefik è adatto per un ambiente di produzione?
Sì, Traefik è progettato per l’uso in produzione, offrendo una gestione SSL senza soluzione di continuità e supporto per l’architettura dei microservizi. Con funzionalità come bilanciamento del carico, reindirizzamento automatico e un’interfaccia facile da comprendere, è uno strumento potente per qualsiasi ambiente di produzione. Aziende, sviluppatori e homelabber hanno utilizzato con successo Traefik in vari ambienti self-hosted.
Conclusione
Utilizzare Traefik per automatizzare SSL per le tue app Docker su un VPS semplifica il processo di gestione, migliora la sicurezza e ti fa risparmiare tempo. Con l’importanza crescente di HTTPS, questa configurazione è un investimento valido per qualsiasi sviluppatore o homelabber. Buon self-hosting!