So verwenden Sie GeoIP, um Regionen in Nginx einzuschränken

So verwenden Sie GeoIP, um Regionen in Nginx einzuschränken

Dieser Blog ist eine Arbeitsnotiz

Umfeld:

Nginx-Version: nginx/1.14.0

Centos-Version: centos7

Die Voraussetzungen sind wie folgt:

Unterscheiden Sie zwischen inländischen und ausländischen IP-Adressen und springen Sie dann zu verschiedenen Seiten. Verwenden Sie schließlich das Drittanbietermodul von nginx: geoip, um dies zu erreichen. Ich werde nicht über seine Vorteile sprechen. Es gibt viele Erklärungen im Internet. Sehen wir uns an, wie man es konfiguriert.

Mein System ist mit nignx.repo konfiguriert. Ich habe das GeoIP-Modul direkt mit yum installiert, ohne das Modul hinzuzufügen und neu zu kompilieren.

yum installiere nginx-module-geoip

Laden Sie die GeoIP-Datenbankdatei herunter

cd /etc/nginx
mkdir geoipdat
CD GeoIPDAT

Laden Sie wget herunter: http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

Entpacken Sie gunzip GeoIP.dat.gz
gunzip GeoLiteCity.dat.gz

Konfigurieren Sie nginx entsprechend Ihren Anforderungen

Laden Sie zunächst die GeoIP-Bibliothek in nginx.conf und konfigurieren Sie sie wie folgt:

lade_modul "modules/ngx_http_geoip_module.so";
lade_modul "modules/ngx_stream_geoip_module.so";

Benutzer nginx;
Arbeiterprozesse 1;

Fehlerprotokoll /var/log/nginx/error.log warnen;
pid /var/run/nginx.pid;


Ereignisse {
  Arbeiterverbindungen 1024;
}


http {
  /etc/nginx/mime.types einschließen;
  Standardtyp Anwendung/Oktett-Stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';

  Zugriffsprotokoll /var/log/nginx/access.log Haupt;

  sendfile an;
  #tcp_nopush ein;

  KeepAlive-Timeout 65;

  #gzip ein;

  schließen Sie /etc/nginx/conf.d/*.conf ein;
}

Konfigurieren Sie den virtuellen Host wie folgt:

GeoIP_Land /etc/nginx/geoipdat/GeoIP.dat;
GeoIP-Stadt /etc/nginx/geoipdat/GeoLiteCity.dat;


Server {
  hören Sie 80;
  Servername localhost;
  Standort / {
 Wurzel /opt;
 wenn ($geoip_country_code = CN){
 umschreiben (.*) /zh$1 break;
 }
    umschreiben (.*) /en$1 break;
  }
    Fehlerseite 500 502 503 504 /50x.html;
  Standort = /50x.html {
    root /usr/share/nginx/html;
  }

}

Das opt-Verzeichnis lautet wie folgt

[root@VM_0_15_centos opt]# Baum
.
|
└── de
│ └── index.html
└── de
  └── index.html

Das Obige ist nur eine einfache Konfiguration. . . .

Die obige Methode zur Verwendung von GeoIP für regionale Beschränkungen in Nginx ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Nginx beschränkt den IP-Zugriff auf bestimmte Seiten
  • So konfigurieren Sie Nginx, um die Zugriffshäufigkeit derselben IP zu begrenzen
  • Analyse der Methode des Nginx-Servers zur Einschränkung des Zugriffs über IP und user_gent
  • So gehen Sie mit böswilligen Anrufen an die SMS-Schnittstelle über eine eingeschränkte Nginx-IP um
  • Nginx begrenzt die Anzahl der Besuche und Anfragen an eine bestimmte IP im gleichen Zeitraum. Beispielcode
  • Eine vollständige Analyse verschiedener Situationen, in denen der Nginx-Server den IP-Zugriff einschränkt
  • So begrenzen Sie gleichzeitige IP-Adressen und die Download-Geschwindigkeit in Nginx
  • So richten Sie Nginx und Apache ein, um gleichzeitigen IP-Zugriff und IP-Verbindungen zu begrenzen
  • Begrenzung der Anzahl kurzfristiger Zugriffe auf eine bestimmte IP basierend auf Nginx

<<:  Grafisches Tutorial zur Installation und Konfiguration der kostenlosen Installationsversion von MySQL 5.7.16

>>:  Implementierung der Kommunikation zwischen Vue und Flask

Artikel empfehlen

Natives, benutzerdefiniertes Rechtsklickmenü von js

In diesem Artikelbeispiel wird der spezifische Co...

Beispielanalyse zum Beheben von Problemen in historischen Linux-Images

Fix für Probleme mit historischen Linux-Images De...

Tutorial zum Verbinden und Verwenden von MySQL 8.0 im Maven-Projekt von IDEA

Schauen wir uns zunächst meine grundlegende Entwi...

Vue+el-table realisiert das Zusammenführen von Zellen

In diesem Artikelbeispiel wird der spezifische Co...

CSS-Tipps zur Implementierung der Chrome-Tab-Leiste

Dieses Mal schauen wir uns ein Navigationsleisten...

So isolieren Sie Benutzer in Docker-Containern

Im vorherigen Artikel „UID und GID in Docker-Cont...

Stellen Sie IE8 so ein, dass Code im IE7-Stil verwendet wird

<meta http-equiv="x-ua-kompatibel" co...

Vue implementiert Chat-Schnittstelle

In diesem Artikelbeispiel wird der spezifische Co...

Das WeChat-Applet implementiert einen einfachen Rechner

Ein einfacher Rechner, der als Referenz in das We...

So finden Sie langsame MySQL-Abfragen

Vorwort Ich glaube, dass jeder in seiner tägliche...

Ändern Sie die Dateiberechtigungen (Eigentum) unter Linux

Linux und Unix sind Mehrbenutzer-Betriebssysteme,...

Vue.js implementiert eine Timeline-Funktion

In diesem Artikel wird der spezifische Code von V...