4.2 KiB
Troubleshooting 404 Error
Se ottieni un errore 404 visitando il sito, segui questi passaggi:
1. Esegui lo Script di Debug
Sul server, nella directory del progetto:
chmod +x debug-server.sh
./debug-server.sh
Questo script ti mostrerà:
- Stato del container
- Logs
- File presenti in nginx
- Configurazione rete
- Labels Traefik
2. Problemi Comuni e Soluzioni
❌ Container non in esecuzione
Verifica:
docker ps -a | grep vue-demo-app
Soluzione:
docker-compose up -d
❌ File mancanti in /usr/share/nginx/html/
Verifica:
docker exec vue-demo-app ls -la /usr/share/nginx/html/
Dovrebbe mostrare:
- index.html
- assets/ (directory)
Soluzione se i file mancano:
# Rebuild completo
docker-compose down
docker-compose build --no-cache
docker-compose up -d
❌ Rete web_proxy non esiste
Verifica:
docker network ls | grep web_proxy
Soluzione:
docker network create web_proxy
docker-compose restart
❌ Container non sulla rete corretta
Verifica:
docker inspect vue-demo-app --format='{{range $key, $value := .NetworkSettings.Networks}}{{$key}}{{"\n"}}{{end}}'
Soluzione:
docker network connect web_proxy vue-demo-app
docker-compose restart
❌ Variabile DOMAIN non configurata
Verifica:
cat .env
Soluzione:
echo "DOMAIN=tuo-dominio.com" > .env
docker-compose down
docker-compose up -d
❌ Traefik non trova il container
Verifica labels:
docker inspect vue-demo-app | grep -A 20 Labels
Verifica logs Traefik:
docker logs traefik | grep vue-demo
Possibili problemi:
- Dominio nel .env non corrisponde al DNS
- Traefik non è sulla stessa rete del container
- Labels Traefik non corretti
Soluzione:
# Ricrea container con labels corretti
docker-compose down
docker-compose up -d
# Verifica che entrambi siano sulla rete web_proxy
docker network inspect web_proxy
❌ Nginx restituisce 404
Test diretto:
# Ottieni IP del container
CONTAINER_IP=$(docker inspect vue-demo-app --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}')
# Test diretto (dall'interno del server)
curl http://$CONTAINER_IP
Se questo funziona ma il dominio no, il problema è Traefik. Se anche questo restituisce 404, il problema è nginx/build.
Soluzione problemi nginx:
# Verifica file
docker exec vue-demo-app cat /usr/share/nginx/html/index.html
# Verifica configurazione nginx
docker exec vue-demo-app nginx -t
# Rebuild se necessario
docker-compose build --no-cache
docker-compose up -d
3. Verifica Configurazione Traefik
Assicurati che Traefik sia configurato correttamente:
Verifica entrypoints:
docker inspect traefik | grep -i entrypoint
Dovrebbe avere:
websu porta 80websecuresu porta 443
Verifica cert resolver:
docker inspect traefik | grep -i letsencrypt
Dovrebbe avere il resolver letsencrypt configurato.
Verifica rete:
docker network inspect web_proxy
Traefik e vue-demo-app devono essere entrambi su questa rete.
4. Test Manuale Completo
# 1. Verifica DNS
nslookup tuo-dominio.com
# 2. Verifica rete
docker network inspect web_proxy
# 3. Verifica container
docker ps | grep vue-demo
# 4. Test interno
docker exec vue-demo-app wget -O - http://localhost
# 5. Verifica logs
docker logs vue-demo-app
docker logs traefik | grep vue-demo
# 6. Test dal server
curl -H "Host: tuo-dominio.com" http://localhost
# 7. Test esterno
curl https://tuo-dominio.com
5. Rebuild Completo (Last Resort)
Se nulla funziona:
# Stop tutto
docker-compose down
# Rimuovi immagini vecchie
docker rmi vue-demo:latest
docker system prune -f
# Verifica .env
cat .env
# Rebuild completo
docker-compose build --no-cache
# Verifica rete
docker network ls | grep web_proxy || docker network create web_proxy
# Avvia
docker-compose up -d
# Controlla logs
docker-compose logs -f
6. Contatta Supporto
Se dopo tutti questi passaggi il problema persiste, raccogli le seguenti informazioni:
./debug-server.sh > debug-output.txt
docker-compose logs > docker-logs.txt
E invia i file di output per ulteriore analisi.