Technology

Localhost, indirizzo IP o dominio? Come dare al tuo sito web un indirizzo vero

Il tuo sito funziona su localhost, ma nessun altro riesce ad aprirlo. Scopri la differenza tra localhost, indirizzo IP e dominio, e come mettere il tuo sito su un indirizzo vero nel tuo hosting.

· 8 min di lettura

Localhost, indirizzo IP o dominio? Come dare al tuo sito web un indirizzo vero

Hai creato un sito web con l'IA e funziona perfettamente, sul tuo computer. La barra degli indirizzi mostra localhost:3000, o magari una sequenza di numeri come 203.0.113.10. Mandi il link a un amico e non si apre.

Non è un bug. È la distanza tra far funzionare un sito web e pubblicarlo, e il pezzo mancante è quasi sempre un nome di dominio. Questa guida spiega la differenza tra gli indirizzi che forse usi oggi, perché la maggior parte non può essere l'indirizzo vero del tuo sito e come passare a un dominio vero su qualsiasi tipo di hosting.

I quattro tipi di indirizzo

Un sito web si può raggiungere in quattro modi diversi. Sembrano simili, ma funzionano in modo molto diverso.

Tipo di indirizzoEsempioChi può aprirlo
localhosthttp://localhost:3000Solo il computer su cui gira
IP di rete localehttp://192.168.1.20I dispositivi sullo stesso Wi-Fi o router
IP del serverhttp://203.0.113.10Chiunque sia online, ma vedi sotto
Nome di dominiohttps://mysite.comChiunque, ovunque
Quattro modi per raggiungere un sito web: localhost, IP di rete locale, IP del server e nome di dominio, con chi può aprire ciascuno
Lo stesso sito web può avere quattro indirizzi diversi. Solo il nome di dominio è pensato per i visitatori.

I numeri in questa guida sono esempi. 203.0.113.x è un intervallo riservato agli esempi, quindi non punta mai a un server reale.

Perché localhost funziona solo per te

localhost (scritto anche 127.0.0.1) significa «questa stessa macchina». Quando lo digiti, il tuo computer parla con se stesso. Quando il tuo amico digita lo stesso indirizzo, è il suo computer a parlare con se stesso, a non trovare nulla e a mostrare un errore. La parola significa qualcosa di diverso su ogni dispositivo.

Gli indirizzi che iniziano con 192.168., 10. o da 172.16. a 172.31. sono la stessa cosa su scala più ampia. Sono indirizzi privati usati dentro case e uffici. Chi è sul tuo Wi-Fi può aprirli, ma nessuno su internet può farlo.

Far girare un sito in locale è il modo giusto per costruirlo. Il problema comincia quando è l'unico posto in cui esiste. Inoltre il tuo sito è online solo finché il computer è acceso e l'applicazione è in esecuzione.

Perché l'IP di un server non è un indirizzo vero

Quando il tuo sito gira su un server vero, che sia hosting condiviso, un VPS o una macchina cloud, puoi aprirlo con l'indirizzo IP del server. Alcune persone si fermano lì. Questo causa diversi problemi:

  • Il server potrebbe non sapere quale sito mostrare. Lo stesso IP spesso serve molti siti web, e il server decide quale mostrare in base al nome di dominio contenuto nella richiesta. Se apri l'IP nudo, puoi ottenere una pagina predefinita, un errore o il sito di qualcun altro.
  • Niente HTTPS vero. L'HTTPS si configura normalmente per un nome di dominio, e un IP nudo di solito non può ottenere il certificato gratuito standard. Senza HTTPS, i browser mostrano «Non sicuro», e tutto ciò che i visitatori digitano, come password e dati dei moduli, viaggia in forma leggibile.
  • Si rompe quando cambi. L'IP appartiene al server. Se cambi hosting o piano, il numero cambia e tutti i link che hai condiviso smettono di funzionare. Con un dominio, basta puntarlo al nuovo server.
  • Le persone e i filtri non si fidano. Molti filtri antispam e strumenti di sicurezza considerano sospetti i link fatti solo di numeri, e i visitatori non riescono né a ricordarli né a riconoscerli.
  • Niente e-mail professionale. Un indirizzo come hello@mysite.com richiede un dominio.
  • Copie duplicate per i motori di ricerca. Se il tuo sito risponde sia sull'IP sia sul dominio, i motori di ricerca possono vedere due copie di ogni pagina.

Che cos'è davvero un dominio

I computer si trovano usando numeri IP. Un nome di dominio è un'etichetta comprensibile per quel numero, e un sistema chiamato DNS funziona come l'elenco telefonico di internet: gli dai un nome e ti restituisce il numero.

Sono coinvolte tre parti:

  • Il registrar: l'azienda presso cui registri il dominio. Non compri un dominio per sempre. Lo affitti, di solito un anno alla volta, e lo rinnovi.
  • Il DNS: conserva i record che dicono a quale server punta il tuo dominio.
  • Il tuo hosting: dove si trovano i file del tuo sito web.
Diagramma che mostra un browser che chiede al DNS l'IP di mysite.com, il DNS che risponde con il numero e il browser che poi richiede la pagina al server di hosting
Cosa succede nell'istante dopo che qualcuno digita il tuo dominio.

Metti il tuo sito sul tuo dominio

I passaggi seguono la stessa idea su ogni hosting. Cambiano solo i pulsanti e i nomi dei menu.

1. Scopri dove si trova il tuo sito

A cosa puntare il dominio dipende dal tuo tipo di hosting:

Dove si trova il tuo sitoCosa ti dà il tuo hostingRecord abituale
Hosting condivisoUn indirizzo IP del serverRecord A verso quell'IP
VPS o server cloudUn indirizzo IP del serverRecord A verso quell'IP
Piattaforma per siti (come Vercel, Netlify o Render)Un hostname a cui puntare e, a volte, degli IPCNAME o A, come indica la piattaforma

Segui sempre le istruzioni del tuo hosting per i valori esatti. Si trovano nel suo pannello o nella documentazione, e spesso nell'e-mail di benvenuto.

2. Punta il dominio al tuo hosting

Puoi farlo in due modi. Scegline uno, non entrambi.

  • Opzione A: cambiare i nameserver. Presso il tuo registrar, sostituisci i nameserver del dominio con quelli forniti dal tuo hosting. Da quel momento gestisci tutti i record nel pannello dell'hosting.
  • Opzione B: lasciare il DNS dov'è (presso il registrar o in un servizio come Cloudflare) e aggiungere lì i record: un record A che invia il dominio all'IP del tuo server e un record CNAME perché www lo segua.
Illustrazione di record DNS: un record A che punta il dominio all'IP del server e un record CNAME per www
Illustrazione dei due record di cui hanno bisogno la maggior parte dei siti. La tua schermata DNS può avere un aspetto diverso.

Trappola comune: i record contano solo dove il DNS del tuo dominio è effettivamente ospitato. Se hai cambiato i nameserver con quelli del tuo hosting (Opzione A), i record che aggiungi presso il registrar vengono ignorati, e viceversa.

3. Fai conoscere il dominio al tuo hosting

Puntare il dominio a un server non basta. Il server deve anche sapere quale sito appartiene a quel nome. Ogni hosting ha un posto per questo: una pagina Domini sull'hosting condiviso (quella di cPanel ne è un esempio), una riga server_name nelle impostazioni del web server sul tuo server, oppure una scheda Domini nelle impostazioni del progetto di una piattaforma. Se salti questo passaggio, il tuo dominio raggiunge il server ma mostra una pagina predefinita.

4. Aspetta che il DNS si propaghi

Si chiama propagazione. Può richiedere da pochi minuti a un giorno o due, anche se spesso è rapida. Finché non finisce, il dominio può non funzionare o mostrare una vecchia pagina ad alcune persone.

5. Attiva l'HTTPS

La maggior parte delle piattaforme e molti hosting installano automaticamente un certificato gratuito non appena il tuo dominio punta a loro. Sul tuo server puoi usare un servizio di certificati gratuiti come Let's Encrypt con lo strumento Certbot. In entrambi i casi, il dominio deve già puntare al server. Quando hai finito, imposta il sito per reindirizzare tutte le visite da http a https.

6. Scegli una sola versione del tuo indirizzo

mysite.com e www.mysite.com contano come due indirizzi diversi. Scegline uno come principale e reindirizza l'altro verso di esso. Le piattaforme di solito hanno un'impostazione per questo. Su un server Apache, queste regole fanno il lavoro (mettile nel file .htaccess del sito). La prima invia www al dominio senza www, e la seconda invia al tuo dominio chiunque arrivi tramite l'IP nudo del server:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [NC]
RewriteRule ^(.*)$ https://mysite.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^203\.0\.113\.10$
RewriteRule ^(.*)$ https://mysite.com/$1 [L,R=301]

Sostituisci il dominio e l'IP di esempio con i tuoi. Su Nginx o un altro server l'idea è la stessa, ma la sintassi è diversa, quindi consulta la sua documentazione.

Correggi gli indirizzi nascosti nel tuo codice

Il codice scritto dall'IA spesso ha localhost scritto dentro. Su un sito online questo rompe le cose in modo confuso. Il browser di un visitatore interpreta localhost come il proprio computer, quindi la tua pagina prova a caricare dati da una macchina che non ha nulla a che fare con il tuo sito.

Sbagliato:

fetch("http://localhost:3000/api/products")

Giusto (funziona ovunque):

fetch("/api/products")

Cerca in tutto il tuo progetto localhost, 127.0.0.1, 192.168 e qualsiasi IP che hai usato. Poi controlla questi punti:

  • Impostazioni dell'URL del sito: valori come APP_URL o BASE_URL devono usare il tuo dominio vero, con https.
  • Servizi di accesso e di pagamento: l'accesso con Google, i gateway di pagamento e servizi simili richiedono il tuo dominio vero nei loro pannelli, come indirizzo di reindirizzamento (callback) consentito. I webhook di pagamento non possono raggiungere localhost in alcun modo, perché i server del gateway hanno bisogno di un indirizzo HTTPS pubblico.
  • Origini consentite (CORS): se il tuo codice elenca indirizzi consentiti, sostituisci localhost con il tuo dominio.
  • Sitemap e tag canonical: devono mostrare il dominio, non un IP né un indirizzo locale.

Un'eccezione: l'indirizzo del database dipende dalla tua configurazione. In molti hosting il database gira sullo stesso server del tuo sito, quindi lì localhost è corretto. Con database cloud o gestiti, il tuo provider ti dà un indirizzo separato da usare. Non lasciare mai un database aperto a tutto internet.

Problemi comuni

  • «Impossibile raggiungere questo sito» subito dopo la configurazione: il DNS potrebbe non essersi ancora propagato, oppure un record è sbagliato. Aspetta, poi controlla i record.
  • Il dominio mostra la pagina predefinita del tuo hosting: il dominio raggiunge il tuo server, ma il server non sa che il sito gli appartiene. Aggiungi il dominio nelle impostazioni del tuo hosting.
  • Mostra un vecchio sito o quello di qualcun altro: un vecchio record o la cache del browser. Prova una finestra privata, oppure un'altra rete.
  • «Non sicuro» o un errore di certificato: il certificato non è ancora stato emesso, oppure il dominio non punta ancora al tuo hosting.
  • Funziona con www ma non senza (o viceversa): manca un record. Aggiungi il CNAME per www.
  • Usare uno strumento di tunnel per una demo: strumenti come ngrok o Cloudflare Tunnel vanno bene per una prova rapida, ma non sono hosting.
  • Aprire il router di casa a internet (port forwarding): evitalo. Espone la tua rete domestica, e gli IP di casa spesso cambiano.

Proteggi il tuo dominio

Il tuo dominio è l'indirizzo più prezioso che possiedi, quindi proteggilo:

  • Attiva il rinnovo automatico. Un dominio scaduto può essere registrato da qualcun altro.
  • Usa una password forte e unica e l'autenticazione a due fattori sul tuo account presso il registrar.
  • Attiva il blocco del registrar, che impedisce il trasferimento del dominio senza la tua approvazione.
  • Tieni aggiornata la tua e-mail di contatto, perché gli avvisi di rinnovo e di sicurezza arrivano lì.

L'autoverifica di 2 minuti

  • Apri http://IP-DEL-TUO-SERVER. Non dovrebbe mostrare il tuo sito (o dovrebbe portarti al tuo dominio).
  • Apri http://mysite.com. Dovrebbe finire su https://mysite.com con un lucchetto.
  • Apri la versione con www. Dovrebbe finire allo stesso indirizzo finale.
  • Cerca nel tuo progetto localhost e qualsiasi numero IP.
  • In un terminale, esegui nslookup mysite.com. La risposta dovrebbe mostrare l'IP del tuo hosting (o, su una piattaforma, indicare i suoi server).

La lista rapida

  1. Usa localhost solo per costruire, mai come tuo indirizzo
  2. Registra un dominio e attiva il rinnovo automatico e l'autenticazione a due fattori
  3. Puntalo al tuo hosting con i nameserver (Opzione A) o con i record A e CNAME (Opzione B), non entrambi
  4. Aggiungi il dominio nelle impostazioni dell'hosting così il server sa a quale sito appartiene
  5. Aspetta che il DNS si propaghi, poi attiva l'HTTPS
  6. Scegli una versione (con o senza www) e reindirizza l'altra
  7. Sostituisci ogni localhost e IP nel tuo codice e aggiorna i pannelli di accesso e di pagamento
  8. Impedisci al sito di rispondere sull'IP nudo del server

Un dominio è ciò che trasforma «funziona sul mio computer» in «chiunque può visitarlo». Configuralo una volta, come si deve, e tutti i link che condividerai continueranno a funzionare, anche se più avanti cambierai hosting.

Comments

No comments yet. Ask a question or add what we missed.