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

Vue implementiert die Bildfrequenzwiedergabe des Karussells

In diesem Artikelbeispiel wird der spezifische Co...

Detailliertes Tutorial zum Herunterladen und Installieren von mysql8.0.21

Offizielle Website-Adresse: https://www.mysql.com...

Linux-Datei-/Verzeichnisberechtigungen und Eigentümerverwaltung

1. Übersicht über Dateiberechtigungen und Eigentu...

So verwenden Sie einen Gamecontroller in CocosCreator

Inhaltsverzeichnis 1. Szenenlayout 2. Fügen Sie e...

Das rel-Attribut des HTML-Link-Tags

Das <link>-Tag definiert die Beziehung zwis...

Analyse der vernachlässigten DOCTYPE-Beschreibung

Doctype ist einer davon: <!DOCTYPE HTML PUBLIC ...

Designideen für MySQL-Backup und -Wiederherstellung

Hintergrund Lassen Sie mich zunächst den Hintergr...

Eine kurze Analyse des HTML-Space-Codes

Wie gut kennen Sie sich mit HTML aus? Wenn Sie jet...

Tutorial zur Installation des AutoFs-Mount-Dienstes unter Linux

Unabhängig davon, ob es sich um einen Samba-Diens...

Gemeinsame Eigenschaften des Framesets (Unterteilung von Frames und Fenstern)

Ein Frame ist ein Webseitenbildschirm, der in mehr...