# 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: ```bash 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:** ```bash docker ps -a | grep vue-demo-app ``` **Soluzione:** ```bash docker-compose up -d ``` ### ❌ File mancanti in /usr/share/nginx/html/ **Verifica:** ```bash docker exec vue-demo-app ls -la /usr/share/nginx/html/ ``` **Dovrebbe mostrare:** - index.html - assets/ (directory) **Soluzione se i file mancano:** ```bash # Rebuild completo docker-compose down docker-compose build --no-cache docker-compose up -d ``` ### ❌ Rete web_proxy non esiste **Verifica:** ```bash docker network ls | grep web_proxy ``` **Soluzione:** ```bash docker network create web_proxy docker-compose restart ``` ### ❌ Container non sulla rete corretta **Verifica:** ```bash docker inspect vue-demo-app --format='{{range $key, $value := .NetworkSettings.Networks}}{{$key}}{{"\n"}}{{end}}' ``` **Soluzione:** ```bash docker network connect web_proxy vue-demo-app docker-compose restart ``` ### ❌ Variabile DOMAIN non configurata **Verifica:** ```bash cat .env ``` **Soluzione:** ```bash echo "DOMAIN=tuo-dominio.com" > .env docker-compose down docker-compose up -d ``` ### ❌ Traefik non trova il container **Verifica labels:** ```bash docker inspect vue-demo-app | grep -A 20 Labels ``` **Verifica logs Traefik:** ```bash docker logs traefik | grep vue-demo ``` **Possibili problemi:** 1. Dominio nel .env non corrisponde al DNS 2. Traefik non è sulla stessa rete del container 3. Labels Traefik non corretti **Soluzione:** ```bash # 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:** ```bash # 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:** ```bash # 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: ```bash docker inspect traefik | grep -i entrypoint ``` Dovrebbe avere: - `web` su porta 80 - `websecure` su porta 443 ### Verifica cert resolver: ```bash docker inspect traefik | grep -i letsencrypt ``` Dovrebbe avere il resolver `letsencrypt` configurato. ### Verifica rete: ```bash docker network inspect web_proxy ``` Traefik e vue-demo-app devono essere entrambi su questa rete. ## 4. Test Manuale Completo ```bash # 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: ```bash # 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: ```bash ./debug-server.sh > debug-output.txt docker-compose logs > docker-logs.txt ``` E invia i file di output per ulteriore analisi.