
AGGIORNAMENTO: gli header di richiesta personalizzati non sono più gratuiti;
Mi capita spesso di dover geolocalizzare le richieste in arrivo alla mia applicazione, soprattutto a fini analitici: voglio sapere da dove arrivano i miei utenti.
Di norma mi bastano paese, città, latitudine e longitudine della richiesta di origine. Per anni mi sono affidato a MaxMind proprio per questo motivo e, sebbene MaxMind sia un ottimo servizio, la versione commerciale costa circa 1.500 dollari l'anno: per le mie esigenze di base è davvero troppo.
Di recente Google ha rilasciato il supporto in beta per gli "User-defined request headers", che permettono di geolocalizzare gratuitamente le richieste che transitano per il Google Load Balancer; in questo articolo le mostro come configurarli per la sua applicazione.
Per semplicità, do per scontato che la sua applicazione giri già su Google Cloud e che il traffico sia instradato tramite Google HTTP/S Load Balancer.
Per prima cosa dovrà aggiornare il suo backend (o i suoi backend) abilitando il supporto agli header di richiesta personalizzati. Il mio backend si chiama "app" ed ecco il comando che ho usato:

In sostanza, sto chiedendo al Google Load Balancer di aggiungere a ogni richiesta tre header: "X-Client-Geo-Location", "X-Client-Geo-Region" e "X-Client-Geo-LatLong". Può dare ai suoi header il nome che preferisce, purché non sia "X-User-IP" e non inizi con "X-Google" o "X-GFE".
Una volta aggiornato il backend, dopo qualche minuto vedrà comparire i nuovi header su ogni richiesta:

Congratulazioni: ha appena ottenuto le informazioni di geolocalizzazione su tutte le sue richieste, a costo zero e in modalità completamente serverless!
La geolocalizzazione, però, non è l'unico dato che può aggiungere alle richieste. Google può fornirle anche l'RTT (round-trip transmission) del client espresso in ms, oltre a versione TLS, cipher e hostname!
Aggiornamento – settembre 2024:
Google ha rivisto i prezzi per la geolocalizzazione delle richieste con Google Load Balancer. Il costo è ora di **0,75 $ ogni 1 milione di richieste**, con un tetto massimo di **500 $/mese**. Le consigliamo di consultare la documentazione ufficiale di Google per i dettagli aggiornati.
Vuole leggere altri articoli? Visiti il nostro blog oppure segua Vadim su Twitter.