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

Einführung in die Installation und Konfiguration von JDK unter CentOS-Systemen

Inhaltsverzeichnis Vorwort Überprüfen und deinsta...

Zusammenfassung verschiedener Methoden für Vue zum Erreichen dynamischer Stile

Inhaltsverzeichnis 1. Ternäres Operatorurteil 2. ...

Lösung für mehrere 302-Antworten im Nginx-Proxy (Nginx Follow 302)

Proxying mehrerer 302er mit proxy_intercept_error...

So kaufen Sie einen Server und richten ihn zunächst ein

Ich habe eine Weile nicht mit Servern gearbeitet....

So erstellen Sie MySQL-Indizes richtig

Die Indizierung ähnelt dem Erstellen bibliografis...

Ursachen und Lösungen für die Front-End-Ausnahme 502 Bad Gateway

Inhaltsverzeichnis 502 Bad Gateway Fehlerbildung ...

HTML-Optimierungstechniken, die Sie kennen müssen

Um die Leistung von Webseiten zu verbessern, begi...

Eine kurze Analyse von MySQL - MVCC

Versionskette In den Tabellen der InnoDB-Engine g...

Einführung in die CSS-Stilklassifizierung (Grundkenntnisse)

Klassifizierung von CSS-Stilen 1. Interner Stil -...

Drei Schritte zur Lösung des IE-Adressleistensymbol-Anzeigeproblems

<br />Dieses Tutorial zur Erstellung von Web...

getdata Tabelle Tabellendaten Join MySQL-Methode

öffentliche Funktion json_product_list($where, $o...