Erlaube nur bestimmten Ländern den Zugriff auf bestimmte Seiten

8

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

%Vor%

Die location -Richtlinie:

%Vor%

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:

%Vor%

Grundsätzlich möchte ich nur Besucher von US , UK und HK access /testing Seite.

    
dev-jim 16.06.2015, 06:45
quelle

1 Antwort

16

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.

1. CONNECT TO SERVER:

Verbinden Sie sich zuerst mit Terminal / Konsole (in Linux - ssh username@server_ip ) oder Putty (in Windows) mit Ihrem Server.

2. ÜBERPRÜFEN SIE GEOIP-MODUL:

Da Sie NGINX bereits installiert haben, überprüfen Sie, ob es mit dem HttpGeoipModule :

kompiliert wurde

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.

3. INSTALLIEREN SIE GEOIP DATENBANK:

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%

4. Aktualisieren Sie die GeoIP-Datenbank

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:

%Vor%

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.

5. Konfigurieren von NGINX mit GeoIP

Ö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 :

%Vor%

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 {} :

%Vor%

/testing/ ist Ihr Website-Pfad, auf den Sie von den USA, Großbritannien und Hongkong aus zugreifen können.

6. NGINX neu starten

%Vor%

Es wurde sowohl auf CentOS als auch auf Debian VPS getestet und es funktioniert.

Ich hoffe, dir wird das weiterhelfen.

    
NETCreator Hosting - WebDesign 19.06.2015, 05:07
quelle