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

Eine kurze Analyse der Probleme mit JS-Originalwerten und Referenzwerten

Primitive Werte -> primitive Typen Number Stri...

So verwenden Sie weniger im WeChat-Applet (optimale Methode)

Vorwort Ich bin es gewohnt, Less/Sass zu schreibe...

Implementierungsbeispiel für die Nginx-Zugriffskontrolle

Über Nginx, eine leistungsstarke, leichte Webserv...

WebWorker kapselt JavaScript-Sandbox-Details

Inhaltsverzeichnis 1. Szenario 2. Implementieren ...

Apropos ContentType(s) von image/x-png

Dies führte auch dazu, dass PNG-Dateien nicht hoch...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.13

Installation der Msyql-Datenbank. Zu Ihrer Inform...

Webdesigner sollten Webseiten unter drei Aspekten optimieren

<br />Mit der zunehmenden Bandbreite werden ...

Lösen Sie das Spleißproblem beim Löschen von Bedingungen in myBatis

Ich habe heute gerade Mybatis gelernt und einige ...

Implementierungsmethode für die bidirektionale Bindung von Vue-Daten

Inhaltsverzeichnis 1. Einleitung 2. Code-Implemen...

CocosCreator - modulares Lernskript

Modulares Cocos Creator-Skript Mit Cocos Creator ...

Ausführliche Erklärung der Iteratoren in ECMAScript

Inhaltsverzeichnis Vorwort Frühere Iterationen It...

Definieren Sie Ihre eigene Ajax-Funktion mit JavaScript

Da die von nativen JS initiierten Netzwerkanforde...