ホームページ  >  記事  >  運用・保守  >  Nginx アンチホットリンクを構成する方法

Nginx アンチホットリンクを構成する方法

WBOY
WBOY転載
2023-05-12 23:04:041851ブラウズ

実験環境

•最小限にインストールされたcentos 7.3仮想マシン
•構成: 1コア/512mb
•nginxバージョン1.12.2

1. ホットリンク Web サイトの構成

1. nginx 仮想マシンを起動し、2 つの Web サイト

vim /etc/nginx/conf .d/vhosts を構成します。 conf

次の内容を追加します

server {
 listen 80;
 server_name site1.test.com;
 root /var/wwwroot/site1;
 index index.html;

 location / {
 }
}

server {
 listen 80;
 server_name site2.test.com;
 root /var/wwwroot/site2;
 index index.html;

 location / {
 }
}

Nginx アンチホットリンクを構成する方法

2. ホスト マシンのドライバーなどの c:\windows\system32\ を編集します\hosts file

192.168.204.11 site1.test.com
192.168.204.11 site2.test.com

##3 .Web サイトを作成します。ルート ディレクトリ

mkdir /var/wwwroot
cd /var/wwwroot
mkdir site1
mkdir site2
echo -e "<h1>site1</h1><img  src=&#39;1.jpg&#39; alt="Nginx アンチホットリンクを構成する方法" >" >> site1/index.html
echo -e "<h1>site2</h1><img  src=&#39;http://site1.test.com/1.jpg&#39; alt="Nginx アンチホットリンクを構成する方法" >" >> site2/index.html

4. 1.jpg を /var/wwwroot/site1 ディレクトリにアップロードします

##5. nginx サービスを開始します

systemctl restart nginx
netstat -anpt | grep nginx

Nginx アンチホットリンクを構成する方法

6. ファイアウォールを介してポート 80 を開きます

setenforce 0
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

7. ホスト マシンにアクセスします

Nginx アンチホットリンクを構成する方法

Nginx アンチホットリンクを構成する方法##2. ホットリンクを防ぐために site1.test.com を設定します

1 . nginx 設定ファイルを編集します

server {
 listen 80;
 server_name site1.test.com;
 root /var/wwwroot/site1;
 index index.html;

 location / {
 }

 location ~ \.(jpg|png|gif|jpeg)$ {
  valid_referers site1.test.com;
  if ($invalid_referer) {
   return 403;
  }
 }
}
server {
 listen 80;
 server_name site2.test.com;
 root /var/wwwroot/site2;
 index index.html;

 location / {
 }
}

Nginx アンチホットリンクを構成する方法2. nginx サービスを再起動します

systemctl restart nginx

3. ホスト マシンで、

にアクセスしてブラウザーのキャッシュをクリアし、

## にアクセスします。 # ブラウザのキャッシュをクリアするには、

Nginx アンチホットリンクを構成する方法

にアクセスしてください。ホットリンク防止設定が役割を果たしていることがわかります。

Nginx アンチホットリンクを構成する方法

3. アンチホットリンク設定を設定します。 -hotlinking で他のリソースを返す

1. nginx 設定ファイルを編集

仮想ホストを追加し、アンチホットリンクで保護されたリソースを書き換えます

server {
 listen 80;
 server_name site1.test.com;
 root /var/wwwroot/site1;
 index index.html;
 location / {
 }
 location ~ \.(jpg|png|gif|jpeg)$ {
  valid_referers site1.test.com;
  if ($invalid_referer) {
   rewrite ^/ http://site3.test.com/notfound.jpg;
   #return 403;
  }
 }
}
server {
 listen 80;
 server_name site2.test.com;
 root /var/wwwroot/site2;
 index index.html;
 location / {
 }
}
server {
 listen 80;
 server_name site3.test.com;
 root /var/wwwroot/site3;
 index index.html;
 location / {
 }
}
説明

location ~ \ .(jpg|png|gif|jpeg)$ {} は、ホットリンク防止を設定するファイルの種類であり、縦線 | で区切られています。

valid_referers site1.test.com *.nginx.org; はスペースで区切られたホワイトリストで、* は汎ドメイン名の設定に使用できます。

if ($invalid_referer) {} は、ホワイトリストに一致するかどうかを判断するために使用されます。ホワイトリストに一致しない場合は、{} の内容が実行されます。

rewrite ^/ ; は書き換えリソースです。ホワイトリストに適合しない場合は、このアドレスに書き換えられます。

return 403; 返されるステータス コードが 403 であることを意味します。


2. site3 ルート ディレクトリを作成します

cd /var/wwwroot
mkdir site3
echo -e "<h1>site3</h1><img  src=&#39;notfound.jpg&#39; alt="Nginx アンチホットリンクを構成する方法" >" >> site3/index.html

3. notfound.jpg ファイルを /var/wwwroot/site3 ディレクトリにアップロードします

4. nginx サービスを再起動します

systemctl restart nginx

5. c:\windows\system32\ を編集しますホスト マシン上の drivers\etc\hosts ファイル

site3.test.com

192.168.204.11 site1.test.com

192.168.204.11 にマッピングを追加します。 site2.test .com

192.168.204.11 site3.test.com



6. ホスト マシンの

にアクセスすると、site1 が表示されます。サイト 2 で盗まれました 1.jpg ファイルはサイト 3

の notfound.jpg ファイルにリダイレクトされました

以上がNginx アンチホットリンクを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。