Skip to content
Saphira Linux

Web

Saphira Linux webDragon

A Saphira feature that turns a normal installation into a managed web platform: Nginx, PHP-FPM 8.5 and Node.js, with TLS you do not have to babysit. You own the machine; webDragon removes the repetitive systems administration.

Tools included — beta state
Saphira Linux webDragon, the Open Source web server mascot

Server-side GeoIP2

webDragon can use Nginx's GeoIP2 module with local MaxMind .mmdb databases. A request is looked up on the server, and the result can be passed to a Node.js, PHP or other upstream application as ordinary HTTP headers. The browser does not need a geolocation permission, JavaScript library or external lookup service.

GoodThe lookup happens on your server. No browser geolocation, SaaS API or third-party request is required.

What MaxMind provides

MaxMind publishes GeoIP2 databases in the portable MaxMind DB format, normally with an .mmdb filename. GeoLite2 Country, City and ASN databases are available free of charge under MaxMind's current licence and account terms. The commercial GeoIP2 editions are separate products; 'GeoIP2' describes the database and module family, not a promise that every MaxMind dataset is free.

An administrator downloads the permitted database files from MaxMind, stores them locally, and replaces them as updates are released. Nginx opens those local files through the GeoIP2 module. It does not send each visitor's address to MaxMind for a live SaaS lookup.

Information available to the upstream

The live request view below shows the exact information supplied to this page by Nginx and the upstream application. Client IP means the address Nginx sees as the client, or the original address restored from a deliberately trusted reverse proxy. Treat X-Real-IP and X-Forwarded-For as authoritative only when Nginx controls or validates the proxy chain.

NoteThese are server-to-server request headers. They are inputs for an application behind Nginx, not a public endpoint that reveals another visitor's information to the browser.

Pure server-side operation

A typical flow is: the client connects to Nginx; Nginx determines the trusted client address; the GeoIP2 module reads the local .mmdb files; Nginx adds the configured headers to its upstream request; and the application decides whether it needs the values. Static files can continue to be served directly without any GeoIP work.

  • No browser geolocation API or location permission prompt.
  • No MaxMind or other external request for each page view.
  • No cookies, tracking pixel or analytics SaaS is needed for GeoIP2.
  • No requirement to store the client IP, coordinates or an individual visitor record.
  • The administrator controls the databases, update schedule, Nginx configuration and application behaviour.

How this web server sees you

This is the request information supplied to this page by the web server. It is not browser geolocation. The values below are shown so you can see exactly what Nginx and the upstream application receive for your request.

Client IP — the address seen by Nginx.

216.73.217.63

x-geoip-country-code — the ISO country code, such as GB.

US

x-geoip-country-name — the English country name, such as United Kingdom.

United States

x-geoip-city — the city supplied by the city database.

Columbus

x-geoip-latitude — the approximate latitude from the city database.

39.95870

x-geoip-longitude — the approximate longitude from the city database.

-82.99870

x-geoip-asn — the autonomous system number, such as 13037.

16509

x-geoip-asn-org — the autonomous system organisation, such as an ISP name.

Amazon.com, Inc.

Saphira Linux users can expose the same server-side values on their own websites by configuring Nginx with local MaxMind databases and passing these headers to their PHP, Node.js or other upstream application. The application can display them, use them for localisation, or ignore them; no browser API or hosted GeoIP service is required.