Ich verwende --with-http_geoip_module
für die Identifizierung des Datenverkehrs. Es gibt einige Seiten, auf die ich nur bestimmte Länder zugreifen möchte. Hier ist die Konfiguration:
Für http
Die location
-Richtlinie:
Das Problem ist, wenn ich US
/ HK
IPs verwende, bekomme ich einen 404 Fehler. Was habe ich falsch gemacht?
AKTUALISIEREN
Hier ist meine komplette conf
Datei:
Grundsätzlich möchte ich nur Besucher von US
, UK
und HK
access /testing
Seite.
Machen wir es von Anfang an. Da du nicht gesagt hast, was dein Betriebssystem ist, werden alle folgenden Schritte für Debian / Ubuntu und CentOS / Fedora / RHEL getrennt.
Verbinden Sie sich zuerst mit Terminal / Konsole (in Linux - ssh username@server_ip
) oder Putty (in Windows) mit Ihrem Server.
Da Sie NGINX bereits installiert haben, überprüfen Sie, ob es mit dem HttpGeoipModule
:
CentOS / Fedora / RHEL und Debian / Ubuntu:
%Vor% Und dann versuchen Sie --with-http_geoip_module
zu finden. Wenn es existiert, kannst du fortfahren, sonst bedeutet das, dass du NGINX mit GeoIP Module
nicht kompiliert hast.
Debian / Ubuntu:
%Vor%CentOS / Fedora / RHEL:
Es befindet sich im EPEL-Repository, also sollten Sie es zuerst aktivieren:
CENTOS 4:
32bit:
%Vor%64bit:
%Vor%CENTOS 5:
32bit:
%Vor%64bit:
%Vor%CENTOS 6:
32bit:
%Vor%64bit:
%Vor%CENTOS 7:
64bit:
%Vor%Dann:
%Vor% Nach der Installation von GeoIP Module wird die Datenbank in /usr/share/GeoIP/GeoIP.dat
gespeichert, könnte aber veraltet sein. Also, lasst uns updaten:
Alternativ können Sie die Datenbank manuell von http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
herunterladen, auf Ihrem Computer extrahieren und in /usr/share/GeoIP/
als GeoIP.dat
hochladen. Vergessen Sie nicht, eine Sicherungskopie des alten GeoIP.dat
zu erstellen, wenn Sie das hier machen möchten.
Öffnen Sie /etc/nginx/nginx.conf
(Ubuntu / Debian) oder /etc/nginx/conf/nginx.conf
(CentOS / Fedora / RHEL) und platzieren Sie dieses in http {}
, vor jedem include
:
Dies blockiert nicht die Länder. Wir setzen nur $ allowed_country.
Öffnen Sie nun Ihre virtualhost
zur Konfiguration ( /etc/nginx/conf.d/YOURDOMAINHERE.conf
) - plazieren Sie diese in server {}
:
/testing/
ist Ihr Website-Pfad, auf den Sie von den USA, Großbritannien und Hongkong aus zugreifen können.
Es wurde sowohl auf CentOS als auch auf Debian VPS getestet und es funktioniert.
Ich hoffe, dir wird das weiterhelfen.
Tags und Links nginx server system-administration geoip