So blockieren und verbieten Sie Webcrawler im Nginx-Server

So blockieren und verbieten Sie Webcrawler im Nginx-Server

Jede Website stößt normalerweise auf viele Crawler, die nicht von Suchmaschinen stammen. Die meisten dieser Crawler werden zum Sammeln von Inhalten verwendet oder von Anfängern geschrieben. Im Gegensatz zu Suchmaschinen-Crawlern haben sie keine Frequenzkontrolle und verbrauchen oft viele Serverressourcen, was zu einer Verschwendung von Bandbreite führt.

Tatsächlich kann Nginx Anfragen problemlos basierend auf User-Agent filtern. Wir müssen nur einen einfachen regulären Ausdruck an der erforderlichen URL-Eintragsposition verwenden, um Crawler-Anfragen herauszufiltern, die die Anforderungen nicht erfüllen:

Standort / {
  wenn ($http_user_agent ~* "python|curl|java|wget|httpclient|okhttp") {
    Rückgabe 503;
  }
  # Andere normale Konfiguration ...
}

Hinweis: Die Variable $http_user_agent ist eine Nginx-Variable, auf die direkt am Standort verwiesen werden kann. ~* gibt eine reguläre Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung an, mit der 80 % der Python-Crawler durch Python herausgefiltert werden können.

Blockieren von Webcrawlern in Nginx

Server { 
    hören Sie 80; 
    Servername www.xxx.com; 
    #Zeichensatz koi8-r; 
    #access_log Protokolle/Host.access.log Haupt; 
    #Standort / { 
    #Wurzel-HTML; 
    # index.html index.htm; 
    #} 
  if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou-Spider|Sogou-Web-Spider|MSNBot|ia_archiver|Tomato Bot") { 
        Rückgabe 403; 
    } 
  Standort ~ ^/(.*)$ { 
        Proxy-Passwort http://localhost:8080; 
    Proxy_Redirect aus; 
    Proxy_Set_Header Host $host; 
    Proxy_Set_Header X-Real-IP $Remote_Addr; 
    proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; 
    maximale Körpergröße des Kunden: 10 m; 
    Client-Body-Puffergröße 128k; 
    Proxy_Verbindungstimeout 90; 
    Proxy_Sendezeitüberschreitung 90; 
    Proxy_Lese_Timeout 90; 
    Proxy-Puffergröße 4k; 
    Proxy-Puffer 4 32k; 
    Proxy_Busy_Buffer_Größe 64k; 
    Proxy_Temp_File_Schreibgröße 64k; 
  } 
    #Fehlerseite 404 /404.html; 
    # Server-Fehlerseiten auf die statische Seite /50x.html umleiten 
    # 
    Fehlerseite 500 502 503 504 /50x.html; 
    Standort = /50x.html { 
      Stamm-HTML; 
    } 
    # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht 
    # 
    #Standort ~ \.php$ { 
    # Proxy-Passwort http://127.0.0.1; 
    #} 
    # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht. 
    # 
    #Standort ~ \.php$ { 
    #Wurzel-HTML; 
    # fastcgi_pass 127.0.0.1:9000; 
    # fastcgi_index index.php; 
    # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
    #fastcgi_params einschließen; 
    #} 
    # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis 
    # stimmt mit nginx überein 
    # 
    #Standort ~ /\.ht { 
    # alles ablehnen; 
    #} 
  }

Sie können es mit curl testen

curl -I -A "qihoobot" www.xxx.com

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Ändern Sie die Nginx-Konfiguration, um die Häufigkeit bösartiger Crawler zu begrenzen
  • Eine einfache Methode zum Konfigurieren des User-Agents zum Filtern von Crawlern in Nginx
  • So zeigen Sie das Verhalten von Suchmaschinen-Spider-Crawlern in Linux/Nginx an
  • Nginx-Konfigurationsbeispiel zur Begrenzung der Suchmaschinen-Crawler-Frequenz und zum Verbot der Blockierung von Webcrawlern
  • Nginx-Anti-Crawler-Strategie, um UA am Crawlen von Websites zu hindern

<<:  Detaillierte Erklärung des Codes zwischen der MySQL-Masterbibliothek Binlog (Master-Log) und der Slave-Bibliothek Relay-Log

>>:  Eine kurze Diskussion über die alternative Methode von $refs in vue2 in der kombinierten API von vue3

Artikel empfehlen

Detaillierte Einführung in CSS-Schrift-, Text- und Listeneigenschaften

1. Schrifteigenschaften Farbe, gibt die Farbe des...

MySQL-Cursorfunktionen und -Verwendung

Inhaltsverzeichnis Definition Die Rolle des Curso...

js implementiert ein einfaches Warenkorbmodul

In diesem Artikelbeispiel wird der spezifische Co...

MySQL-Gruppe durch Gruppieren mehrerer Felder

Bei täglichen Entwicklungsaufgaben verwenden wir ...

Analyse impliziter Fehler bei der gleichzeitigen Replikation von MySQL 5.7

Vorwort Die meisten unserer MySQL-Onlineumgebunge...

Vue nutzt Baidu Maps zur Realisierung der Stadtpositionierung

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

Facebooks nahezu perfekte Neugestaltung aller Internetdienste

<br />Originalquelle: http://www.a-xuan.cn/?...

Einige Tipps zur Beschleunigung der Entwicklung von WeChat-Miniprogrammen

1. Erstellen Sie eine Seite mit app.json Gemäß un...

Einführung in die Vue3 Composition API

Inhaltsverzeichnis Überblick Beispiel Warum wird ...

Beheben von Problemen beim Importieren und Exportieren von Mysql

Hintergrund Da ich alle meine Aufgaben auf Docker...

Codebeispiele für die Sicherung mehrerer MySQL-Datenbanken

In diesem Artikel werden hauptsächlich Codebeispi...