Il titolo di oggi è un po’ emblematico, ma altrettanto emblematico potrebbe essere il contenuto del post, a meno che non siate in questo specifico caso: “Vorrei fare una richiesta ad un server web multidominio che non ha ancora il DNS puntato per un particolare dominio”.
In questo caso, cosa succede? Purtroppo, non essendoci il puntamento DNS, non posso richiamare il dominio direttamente con fqdn.nomedominio.ext, perché il server web non capirebbe con quale virtualhost rispondere. Potrei impostare il puntamento DNS nel file hosts del mio PC, ma nel caso sia necessario creare uno script PHP su un terzo spazio web e quindi non avere la possibilità di “impostargli” un DNS farlocco?
cUrl ci viene in aiuto, con le decine di funzionalità che ha. E’ infatti possibile passare un parametro all’header della richiesta, indicando quale virtualhost richiamare.
Facciamo un esempio pratico. Il virtualhost risponde al nome fqdn.nomedominio.ext (che però ancora non è mappato sul server DNS) e l’IP del server web è 10.10.10.10. In questo caso la richiesta da fare è:
1 | curl-v--header'Host: fqdn.nomedominio.ext'10.10.10.10 |
Così facendo, risponderà il virtualhost fqdn.nomedominio.ext sul server con IP 10.10.10.10.
Nel caso volessi fare la stessa cosa in PHP, basterebbe uno script del genere:
1 2 3 4 5 6 | $ch=curl_init(); curl_setopt($ch,CURLOPT_HTTPHEADER,array('Host: fqdn.nomedominio.ext')); curl_setopt($ch,CURLOPT_URL,'10.10.10.10'); $content=curl_exec($ch); curl_close($ch); print_r($content); |
Questa cosa è molto utile quando si ha a che fare con un bilanciatore (load balancer).
enjoy
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta