削除されたファイルに対する複数のリクエストをブロックする

削除されたファイルに対する複数のリクエストをブロックする

Nginx で Wordpress を実行しているサーバーに JavaScript ファイルをホストしていました。ファイルを削除しましたが、複数のリファラーからのリクエストがまだいくつか残っています。これらのリファラーは、異なる URL と IP アドレスからのものです。

リクエストが非常に多く、サーバーのパフォーマンスに影響していると思われるため、それらをブロックしたいと思います。

これらのリクエストをブロックする方法はありますか?

答え1

古い JavaScript の場所が有効でなくなるように nginx を明示的に構成すると、nginx がファイルシステムをチェックする必要がなくなり、410 エラーを送信するときに 404 エラー ページを送信する必要もなくなるため、パフォーマンスが向上すると思います。

location /path/to/script.js {
return 410 ; 
}

HTTP ステータス コード 410: 終了

要求されたリソースはサーバーで利用できなくなり、転送先アドレスも不明です。この状態は永続的であるとみなされます。リンク編集機能を持つクライアントは、ユーザーの承認後に Request-URI への参照を削除する必要があります。サーバーが状態が永続的かどうかを知らない、または判断できない場合は、代わりにステータス コード 404 (見つかりません) を使用する必要があります。特に指定がない限り、この応答はキャッシュ可能です。

410 応答は、主に、リソースが意図的に利用不可になっており、サーバー所有者がそのリソースへのリモート リンクを削除することを希望していることを受信者に通知することで、Web メンテナンスのタスクを支援することを目的としています。このようなイベントは、期間限定のプロモーション サービスや、サーバーのサイトでもう働いていない個人のリソースでよく発生します。永久に利用不可になっているリソースをすべて「消滅」としてマークしたり、そのマークを一定期間保持したりする必要はありません。これはサーバー所有者の裁量に任されています。

答え2

location = /deleted.js {
    default_type    text/plain;
    return      410 "410";
    #access_log off;
}

上記のようにアクセスログを無効にするか、十分に新しいnginxを実行している場合は、次のように設定します。access_logバッファリングを行うためです。ディスク アクセスは一般に非常にコストがかかるため、速度低下の原因となる可能性があります。

ちなみに、 を使用するとreturn自動的に が暗黙的に適用されるlog_not_found off;ため、404 を生成するために vfs に任せるだけよりも優れています。

答え3

これは、iptable の文字列モジュールを使用して http ヘッダーの内容を確認するというアイデアですが、もちろん、特別なケースに合わせて調整する必要があります。http://spamcleaner.org/en/misc/w00tw00t.html

ただし、すべての受信パケットを検査するのと、Web サーバーで処理するのとでは、どちらが速いのかよくわかりません。最終的には、サーバー構成に行を追加して、特定の URL ですぐに 404 を返すようにします。Web マスターと検索エンジンがリンクを修正すると、トラフィックは時間とともに自動的に減少します (404 エラーは最新の Web 検索エンジンで悪い位置付けを引き起こすため、修正されるでしょう)。

関連情報