通常、すべての Web サイトは、多くの非検索エンジン クローラーに遭遇します。これらのクローラーのほとんどは、コンテンツ収集に使用されるか、初心者によって作成されます。検索エンジン クローラーとは異なり、非検索エンジン クローラーには頻度制御がなく、多くのサーバー リソースを消費することが多く、帯域幅の無駄になります。 実際、Nginx は User-Agent に基づいてリクエストを簡単にフィルタリングできます。要件を満たさないクローラー リクエストをフィルタリングするには、必要な URL エントリ位置で単純な正規表現を使用するだけです。 位置 / { $http_user_agent の場合、"python|curl|java|wget|httpclient|okhttp") { 503 を返します。 } # その他の通常の構成... } 注: 変数 Nginx で Web クローラーをブロックする サーバー{ 聞く 80; サーバー名 www.xxx.com; #文字セット koi8-r; #access_log ログ/host.access.log メイン; #位置 / { #ルート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") { 403 を返します。 } 場所 ~ ^/(.*)$ { proxy_pass http://localhost:8080; proxy_redirect オフ; proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; クライアントの最大ボディサイズは10mです。 クライアントボディバッファサイズ 128k; プロキシ接続タイムアウト 90; プロキシ送信タイムアウト 90; プロキシ読み取りタイムアウト 90; プロキシバッファサイズ 4k; プロキシバッファ 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } #エラーページ 404 /404.html; # サーバーのエラーページを静的ページ /50x.html にリダイレクトします # エラーページ 500 502 503 504 /50x.html; 場所 = /50x.html { ルートhtml; } # PHP スクリプトを 127.0.0.1:80 で listen している Apache にプロキシします # #場所 ~ \.php$ { # プロキシパス http://127.0.0.1; #} # PHP スクリプトを 127.0.0.1:9000 で待機している FastCGI サーバーに渡します # #場所 ~ \.php$ { #ルートhtml; #fastcgi_pass 127.0.0.1:9000; # fastcgi_index インデックス.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #fastcgi_params を含めます。 #} # Apacheのドキュメントルートが.htaccessファイルへのアクセスを拒否する # nginxのものと一致します # #場所 ~ /\.ht { # すべて拒否; #} } curlでテストできます curl -I -A "qihoobot" www.xxx.com 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: MySQL マスターライブラリ binlog (master-log) とスレーブライブラリ relay-log 間のコードの詳細な説明
>>: vue3 統合 API における vue2 の $refs の代替方法についての簡単な説明
目次I. 概要2. 従来の多段階イメージ構築3. Buildkitを使用してイメージをビルドする4....
えーっと、名前はただの推測です 2333序文これは練習用の CSS デモです。何か間違っている点があ...
さまざまな色の16進コード表[パート1] 赤とピンク、およびそれらの 16 進コード。 #99003...
ソースコードをダウンロード git クローン https://github.com/mysql/my...
MySQL インストール手順 MySQL は、スウェーデンの MySQL AB によって開発された...
目次1. 準備2. MySQL暗号化関数方式2.1 MySQL 暗号化2.2 MYSQL 復号化3....
Docker は、ブリッジ、ホスト、オーバーレイなどの複数のネットワークを提供します。同じ Dock...
フロントエンドエンジニアとして、IE は私たちにとって馴染み深いものであるはずです。設計案を実装する...
最近、ビジネス側から、一部のユーザー情報の挿入に失敗し、エラー メッセージが「不正な文字列値:&qu...
序文mysql がデフォルトのデータベース パスを変更したため、サービスを開始できませんでした。ログ...
この記事では、画像を読み込むためのJavaScriptキャンバスの具体的なコードを参考までに紹介しま...
Maven を使用してプロジェクトを管理する場合、jar パッケージをプライベート ウェアハウスにア...
リーダーの指示のもと、Java プロジェクトを引き継ぎ、リファクタリングを行う必要がありました。同時...
目次序文問題の説明原因分析拡大する総括する序文最近、データの欠落やデータの損失に関するフィードバック...
1. Dockerの起動の問題:問題は解決しました: Hyper-V をオンにする必要があります (...