Last active
February 14, 2024 22:32
-
-
Save kenjij/daadbc6c284fcd6c2b2d to your computer and use it in GitHub Desktop.
Downloading free MaxMind GeoIP file, use with NGINX
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Download the legacy format for NGINX compatibility | |
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz | |
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz | |
# Unzip | |
gunzip Geo*.gz | |
# Copy to /usr/share/GeoIP/ | |
cp Geo*.dat /usr/share/GeoIP/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Use GeoIP database | |
http { | |
geoip_country /usr/share/GeoIP/GeoIP.dat; | |
geoip_city /usr/share/GeoIP/GeoLiteCity.dat; | |
} | |
# Create mapping, then block | |
http { | |
map $geoip_country_code $allowed_country { | |
default yes; | |
CN no; | |
RU no; | |
} | |
} | |
server { | |
if ($allowed_country = no) { | |
return 444; | |
} | |
} | |
# Insert headers (reverse proxy case) | |
server { | |
proxy_set_header X_COUNTRY_CODE $geoip_country_code; | |
proxy_set_header X_CITY_COUNTRY_CODE $geoip_city_country_code; | |
proxy_set_header X_REGION $geoip_region; | |
proxy_set_header X_CITY $geoip_city; | |
proxy_set_header X_POSTAL_CODE $geoip_postal_code; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for this note, you are saved my time :)