Un dominio serve a molto più di un sito. Puoi avere app.midominio.com su una macchina, intranet.midominio.com su un'altra e clientes.midominio.com su un servizio esterno, senza comprare nient'altro: sono sottodomini, e in Route 53 ciascuno è una riga. E poi c'è l'eterna domanda di www: far sì che i due modi di scrivere il tuo dominio portino allo stesso sito. Questa guida risolve entrambe le cose e chiarisce un equivoco frequente: il DNS dice dove va ogni nome, ma non fa reindirizzamenti; quello lo fa il server.
Prima di iniziare: cosa significa ogni cosa
- Dominio e sottodominio
- midominio.com è il dominio; qualsiasi cosa davanti separata da un punto (app.midominio.com) è un sottodominio. Si creano nel DNS, non si comprano.
- Route 53 e zona ospitata
- Il DNS di Amazon e il "fascicolo" del tuo dominio al suo interno, con tutti i suoi record.
- Record A
- Un nome punta a un indirizzo IP. È quello che si usa per una tua macchina.
- Record CNAME
- Un nome punta a un altro nome. Si usa per servizi esterni ("clientes.midominio.com va a qualcosa.fornitore.com"). Non si può mettere alla radice del dominio.
- Record alias
- Un'invenzione di Route 53 che funziona come un CNAME ma anche alla radice, per puntare a servizi AWS (CloudFront, bilanciatori, bucket).
- Carattere jolly (*)
- Un record *.midominio.com risponde per qualsiasi sottodominio che non abbia un record proprio.
- Reindirizzamento
- Aprendo un indirizzo, il browser finisce su un altro. Lo fa il server web (o un servizio), non il DNS.
- TTL
- Secondi per cui gli altri possono ricordare la risposta. Basso mentre cambi cose, alto quando è tutto stabile.
Passo dopo passo
Apri la zona del tuo dominio
Console di Route 53, Hosted zones, clicca sul tuo dominio. Vedrai i record che ha già: l'A della radice, forse quello di www, gli MX della posta. Ogni nuovo sottodominio sarà un record in più in questo elenco.
Crea un sottodominio verso una tua macchina
Create record. Nome: solo la parte davanti (
app; Route 53 aggiunge il dominio). Tipo A. Valore: l'IP fisso della macchina. TTL 300. Crea. In pochi minutiapp.midominio.comarriva a quella macchina; il server web della macchina deve saper rispondere per quel nome (un "virtual host" o "server block"), altrimenti mostrerà il sito predefinito.Crea un sottodominio verso un servizio esterno
Il tuo fornitore di helpdesk, negozio o newsletter ti dice qualcosa come "crea un CNAME da
clientesamidominio.proveedor.com". Appunto: Create record, nomeclientes, tipo CNAME, valore il nome che ti hanno dato (senza http:// e senza barra finale). Se il fornitore è un servizio AWS (CloudFront, un bilanciatore), usa il tipo A con la casella Alias attivata e sceglilo dal menu a tendina.Decidi cosa fare con www
La prima cosa è che i due nomi arrivino al tuo server: la radice con un record A verso l'IP, e
wwwcon un altro A verso lo stesso IP (o un CNAME versomidominio.com). Fin qui il DNS. La seconda è scegliere qual è il nome "ufficiale" (oggi di norma senza www) e far sì che l'altro reindirizzi a quello, perché Google non veda due siti uguali e il lucchetto funzioni su entrambi.Fai il reindirizzamento sul server
Questo non si fa in Route 53. Sulla macchina, il server web deve rispondere a
www.midominio.comcon un reindirizzamento permanente (codice 301) versomidominio.com. In Apache, nel blocco del sito:RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.midominio\.com$ [NC] RewriteRule ^(.*)$ https://midominio.com/$1 [R=301,L]In Nginx è un blocco
serverper www con unreturn 301. Se usi i modelli Bitnami di Lightsail, lo strumentobncert-toolchiede esattamente questo quando installa il certificato e lo configura per te. Il certificato HTTPS deve coprire entrambi i nomi.Controlla e alza il TTL
Apri le quattro combinazioni (con e senza www, con http e https): tutte devono finire su
https://midominio.comcon il lucchetto. Apri il nuovo sottodominio. Quando tutto è stabile da qualche giorno, alza il TTL dei record a 3600 o più: meno richieste e risposte più rapide.
Cosa può andare storto
Route 53 non mi lascia creare un CNAME alla radice
È una regola del DNS. Alla radice usa un record A con l'IP, o un alias se la destinazione è un servizio AWS. Se la destinazione è un servizio esterno che ti dà solo un nome, chiedigli se ha un IP fisso oppure metti CloudFront davanti.
Il sottodominio risolve ma mostra un altro sito
Il DNS ha fatto la sua parte; il server non sa che quel nome è suo e mostra il sito predefinito. Aggiungi il nome al virtual host (Apache) o al server block (Nginx) del sito giusto.
Voglio un sottodominio per ogni cliente senza creare i record uno a uno
Crea un record jolly: nome *, tipo A, IP della macchina. Qualsiasi qualcosa.midominio.com arriverà lì, e la tua applicazione decide cosa mostrare in base al nome. I record specifici che crei a parte hanno la precedenza sul jolly.
Ho cambiato un record e non si vede
TTL. I server intermedi ricordano la vecchia risposta finché non scade. Abbassa il TTL qualche giorno prima di un cambio previsto; se è già fatto, resta solo aspettare.
In Simplio
In Simplio ogni dominio di Route 53 è una scheda dove i record si leggono in linguaggio normale e creare un sottodominio è scegliere il nome e la macchina di destinazione da un elenco: l'IP lo mette Simplio. I record di servizi esterni si aggiungono in una riga con aiuto a seconda del tipo, sostituirne uno esistente chiede conferma e toglierne uno chiede il secondo fattore. E nel registro attività resta chi ha cambiato cosa.
La stessa cosa, in AWS e in Simplio
| Nella console di AWS | In Simplio | |
|---|---|---|
| Creare un sottodominio | Route 53, Create record, scegliere il tipo tra 12 opzioni, TTL | Riga "app → questa macchina" nella scheda del dominio, con l'IP già inserito |
| Sapere dove punta ogni nome | Leggere la tabella dei record tecnici | Elenco in linguaggio normale: "il sito va alla macchina X, la posta la riceve Y" |
| Rompere qualcosa | Chiunque abbia accesso può cancellare un record | Togliere un record chiede il secondo fattore; NS e SOA sono protetti |