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

推薦する

問題におけるJS演算子の調査

問題は、誰もが「メモリ リーク」について知っていることです。一般的なシナリオはいくつかあります。クロ...

コードブロックのハイライトをコピーして表示できる js プラグイン highlight.js + clipboard.js 統合

主に2つの側面から: 1. ハイライト/改行2. コードのコピーボタンこれら両方には既製のプラグイン...

行の高さと垂直方向の配置についての深い理解

いくつかの概念行ボックス: インライン ボックスを囲むボックス。1 つ以上の行ボックスが積み重ねられ...

MySQL データ挿入効率の比較

データを挿入するとき、以前オフィス システムに取り組んでいたときにはデータベースのパフォーマンスにつ...

CSSはカラフルでスマートな影の効果を実現します

背景前景要素から特定の色を継承する影の効果を作成する方法を知りたいと思ったことはありませんか?方法に...

Vue の element-ui コンポーネントのデフォルトの CSS スタイルを変更する 4 つの方法

目次序文1. グローバル統合オーバーライドを使用する2. .vueファイルを変更する3. コンポーネ...

Docker でコンテナのポート マッピングを動的に変更する方法

前書き: Docker のポート マッピングは、多くの場合、Docker Run コマンド中に -p...

React 手書きタブ切り替え問題

親ファイル React をインポートし、{useState} を 'react' か...

Linux で MySQL データベースのインポートおよびエクスポート コマンドを実装する方法

1. mysqldump コマンドを使用してデータベースをエクスポートします (このコマンドのパスで...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

Linuxのテキスト処理コマンドsortの詳細な説明

テキストファイルの内容を並べ替える使用方法: ソート + オプション + ファイル名 (複数のファイ...

VueはExcelデータをエクスポートするパブリック関数メソッドをカプセル化します

vue+element UI は Excel データをエクスポートするためのパブリック関数をカプセル...

MySQL の where と on の違いと、いつ使用するか

以前、テーブル結合クエリを書いていたとき、whereとonの違いがわからず、SQLに小さな問題が発生...

フォーム検証機能を実装するためのネイティブ js

目次開発の際には、機能を段階的に分析して実装することで、明確な考え方を保つことができます。 1. フ...

画像の色を変更するための純粋なCSS

画像の色を変更するための CSS テクニックは非常にシンプルです。具体的なコードは次のとおりです。ヒ...