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

推薦する

MySQL 基本チュートリアル: DML ステートメントの詳細な説明

目次DMLステートメント1. レコードを挿入する2. 記録を更新する3. シンプルなクエリレコード4...

EChartsマウスイベント処理方法の詳細な説明

イベントとは、クリック、マウスオーバー、ページの読み込み後にトリガーされる読み込みイベントなど、ユー...

MySQLトランザクションとSpring分離レベルの実装原理の詳細な説明

1. トランザクションはACID特性を持つ原子性: トランザクションは、トランザクションによって分割...

Docker Desktop で rocketmq をインストールするための非常に詳細なチュートリアル

Dockerデスクトップをインストールするダウンロード先: Docker Desktop for M...

CSSは固定比率のブロックレベルコンテナを簡単に実装できる

H5 レイアウトを設計する場合、通常はバナーに遭遇することになります。例えば、2:1 で表示したい場...

シンプルなタブバー切り替えコンテンツバーを実装するJavaScript

この記事では、タブバーの切り替えコンテンツバーを簡単に実現するためのJavaScriptの具体的なコ...

HTML+CSS+JS でキャンバスがマウスの小さな円に追従する特殊効果のソースコードを実現

効果(ソースコードは最後にあります): 成し遂げる: 1. タグを定義します。 <h1>...

Linux 上の Nginx に複数のバージョンの PHP をインストールする

サーバーの LNPM 環境をインストールして構成する場合、複数のバージョンの PHP の共存を考慮す...

Linuxオンラインソフトウェアgccをオンラインでインストールする方法

Linux オンラインインストール関連コマンド: yum install: すべてインストールyum...

Docker を使用した nGrinder パフォーマンス テスト プラットフォームの導入プロセスの分析

nGrinderとは何ですか? nGrinder は、スクリプトの作成、テストの実行、監視、結果レポ...

Linux の MySQL でリモート接続を承認する方法

注意: 他のマシン (IP) は、承認なしではクライアント経由で MySQL データベースに接続でき...

MYSQLの文字セット設定方法(端末の文字セット)の詳しい説明

序文ターミナルを使用してデータベースまたはテーブルを作成するたびに、文字セットが latin1 であ...

ブラウザは関連するHTTPヘッダーをキャッシュし、HTTPリクエストの数を最小限に抑えます。

最近、Yahoo の 34 の黄金律を読み、ウェブサイトのパフォーマンスを最適化する方法を学びました...

MySQL インデックスの原理と最適化の詳細な説明

序文この記事は Meituan の大物によって書かれました。とても素晴らしいので、皆さんと共有したい...

同期スクロールを実現するための複数のテーブル要素のサンプルコード

Element UIは、複数のテーブルを同時に水平および垂直にスクロールすることを実装します。 コー...