Nginx でアンチホットリンクを設定するための手順を完了する

Nginx でアンチホットリンクを設定するための手順を完了する

必要:

通常、サイト側は、ウェブサイト上の動画や写真が盗まれるのを防ぎたいと考えています。結局のところ、動画のトラフィックには多額の費用がかかります(お金持ちはこれを考慮する必要がありません)。

1. 早速ですが、まずnginxの設定ファイルをアップロードします

サーバー{
聞く 80;
サーバー名 www.test.com;
ルート /data/web/;
インデックス index.php index.html;
access_log /data/logs/nginx/biao.madacode.access.log メイン;

位置 /{
ルート /home/data/;
}

エラーページ 404 /usr/local/nginx/html/404.html;

場所 ~ .*\.(wma|wmv|asf|mp3|mp4|mmf|zip|rar|jpg|gif|png|swf|flv)$
{
valid_referers なし ブロックされた server_names *.test.com http://IP;
($invalid_referer) の場合 {
403 を返します。
}
24時間で期限切れになります。
access_log オフ;

}
場所 ~ /\。
{
すべてを否定する;
}

}

2. アンチホットリンクのコア設定ファイルの解釈

場所 ~ .*\.(wma|wmv|asf|mp3|mp4|mmf|zip|rar|jpg|gif|png|swf|flv)$
{
valid_referers なし ブロックされた server_names *.test.com http://IP;
($invalid_referer) の場合 {
403 を返します。
}
24時間で期限切れになります。
access_log オフ;

}

vaild_referers 有効な参照リンクは次のとおりです。それ以外の場合は $invaild_refere を入力し、403 forbidden を返します。

1. なし

「Referer」ソース ヘッダーが空です

2. ブロックされた

「Referer」ソース ヘッダーは空ではありませんが、プロキシまたはファイアウォールによって値が削除され、いずれの値も http:// または https:// で始まっていません。

3. サーバー名

「Referer」ソース ヘッダーには、現在の server_names (現在のドメイン名) が含まれます。

3. シミュレーションケーステスト

1. 参照をシミュレートするために --referer を追加し、結果が直接 403 であることを確認します。これは、上記の構成が適切であることを証明します。

[root@test]# curl --referer http://baidu.com -I http://www.test.com/temp/T19254/20190820/video_out_out/1/0011.mp4
HTTP/1.1 403 禁止
サーバー: Tengine
日付: 2019年8月21日水曜日 09:54:44 GMT
コンテンツタイプ: text/html
コンテンツの長さ: 639
接続: キープアライブ


要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linux での Nginx アンチホットリンクと最適化の実装コード
  • Nginx でホットリンクを防ぐ 3 つの方法
  • Nginx アンチホットリンク設定方法
  • Nginx サーバーでのホットリンク防止方法の紹介
  • Nginx イメージホットリンク保護設定例
  • Nginx のアンチホットリンクを設定する方法
  • Nginxのアンチホットリンクとサービス最適化設定の全プロセス

<<:  CentOS 7 での mysql 5.7 のインストール チュートリアル

>>:  シンプルなカレンダー効果を実現する js

推薦する

ジョセフリング問題を解決する 3 つの JavaScript メソッド

目次概要問題の説明循環リンクリスト順序付き配列数学的再帰要約する概要ジョセフ・リング問題は、ジョセフ...

Vue は無限ロードウォーターフォールフローを実装します

この記事では、参考までに、無限ロードウォーターフォールフローを実現するためのVueの具体的なコードを...

CSS 命名: BEM、スコープ付き CSS、CSS モジュール、CSS-in-JS の説明

CSS の適用範囲はグローバルです。プロジェクトがどんどん大きくなり、参加する人が増えるにつれて、命...

MySQL学習記録: KEYパーティションが引き起こした血なまぐさい事件

需要背景ビジネス テーブル tb_image のデータの一部は次のとおりです。id は一意ですが、i...

HTML 特殊文字エンコーディング CSS3 コンテンツに関する簡単な説明:「私は特別なシンボルです」

プロジェクトで使用されている特殊文字とアイコンHTMLコードXML/HTML コードコンテンツをクリ...

Docker コンテナの uid と gid の詳細な理解

デフォルトでは、コンテナ内のプロセスは root ユーザー権限で実行され、この root ユーザーは...

Docker ベースの Jenkins のデプロイに関する詳細なチュートリアル

このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...

div の高さをブラウザの高さに合わせて調整する方法

この古くからある疑問は、数え切れないほどのフロントエンド開発者やバックエンドプログラマーを悩ませてき...

MySQL 面接でよく聞かれる質問への回答

序文:さまざまな技術職の面接では、MySQL 関連の質問がよくされるようです。開発職の面接でも運用職...

Linuxは、単一のIPをバインドするためにデュアルネットワークカードを実装するためにボンドを使用します。サンプルコード

ネットワークの高可用性を実現するには、複数のネットワーク カードを仮想ネットワーク カードにバインド...

HTMLのテーブルタグの基本学習チュートリアル

表ラベルの構成HTML 内の表は <table> タグで構成されており、ブラウザはタグを...

Windows システムに MySQL を素早くインストールして展開する方法 (グリーンの無料インストール バージョン)

まずは緑色の無料インストール版のMySQLをダウンロードします。任意のフォルダに入れて構いません。今...

JavaScript 開発における標準コミットメッセージの重要性の詳細な説明

目次標準コミットメッセージの重要性コミットするコミットリント依存関係をインストールする.commit...

Linux クラウド サーバーに新しいディスクをマウントする方法

背景社内に新しいサーバーが追加され、2Tのハードディスクがマウントされました。sshでログイン後、マ...

MYSQL8.0.13 無料インストール版 設定チュートリアル例 詳細説明

1. ダウンロード、例として8.0を取り上げますダウンロードアドレス: https://dev.my...