Heim > Betrieb und Instandhaltung > Nginx > So konfigurieren Sie Nginx Anti-Hotlinking

So konfigurieren Sie Nginx Anti-Hotlinking

WBOY
Freigeben: 2023-05-12 23:04:04
nach vorne
1958 Leute haben es durchsucht

Experimentelle Umgebung

•Eine minimal installierte Centos 7.3-Virtual-Maschine
•Konfiguration: 1 Kern/512 MB
•Nginx-Version 1.12.2

1. Konfigurieren Sie die Hotlink-Website

1. Starten Sie eine virtuelle Nginx-Maschine. Konfigurieren Sie zwei Websites

vim /etc/nginx/conf.d/vhosts.confvim /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 / {
 }
}
Nach dem Login kopieren

So konfigurieren Sie Nginx Anti-Hotlinking

2.在宿主机编辑c:windowssystem32driversetchosts文件

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

3.创建网站根目录

mkdir /var/wwwroot
cd /var/wwwroot
mkdir site1
mkdir site2
echo -e "<h1>site1</h1><img  src=&#39;1.jpg&#39; alt="So konfigurieren Sie Nginx Anti-Hotlinking" >" >> site1/index.html
echo -e "<h1>site2</h1><img  src=&#39;http://site1.test.com/1.jpg&#39; alt="So konfigurieren Sie Nginx Anti-Hotlinking" >" >> site2/index.html
Nach dem Login kopieren

4.将1.jpg上传到/var/wwwroot/site1目录

5.启动nginx服务

systemctl restart nginx
netstat -anpt | grep nginx
Nach dem Login kopieren

So konfigurieren Sie Nginx Anti-Hotlinking

6.防火墙放通80端口

setenforce 0
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
Nach dem Login kopieren

7.在宿主机访问

So konfigurieren Sie Nginx Anti-Hotlinking

So konfigurieren Sie Nginx Anti-Hotlinking

二、配置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 / {
 }
}
Nach dem Login kopieren

So konfigurieren Sie Nginx Anti-Hotlinking

2.重启nginx服务

systemctl restart nginx

3.在宿主机访问

清除浏览器缓存,访问

So konfigurieren Sie Nginx Anti-Hotlinking

清除浏览器缓存,访问

So konfigurieren Sie Nginx Anti-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 / {
 }
}
Nach dem Login kopieren

解释

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="So konfigurieren Sie Nginx Anti-Hotlinking" >" >> site3/index.html
Nach dem Login kopieren

3.上传notfound.jpg文件至/var/wwwroot/site3目录

4.重启nginx服务

systemctl restart nginx

Fügen Sie den folgenden Inhalt hinzu

rrreeeSo konfigurieren Sie Nginx Anti-Hotlinking192.168.204.11 site2.test.com

3. Erstellen Sie das Stammverzeichnis der Website


rrreee

4. Laden Sie 1.jpg in das Verzeichnis /var/wwwroot/site1 hoch

5 service

rrreee

So konfigurieren Sie das Anti-Hotlinking von Nginx

So konfigurieren Sie Nginx Anti-Hotlinking

6. Öffnen Sie Port 80 in der Firewall 🎜🎜rrreee 7. Zugriff auf dem Host-Computer jpg" alt="So konfigurieren Sie Nginx' Anti-Leeching" />🎜🎜Wie So konfigurieren Sie das Anti-Leeching-Anti-Hotlinking von Nginx. img.php.cn/upload/article /000/887/227/168390384717153.jpg🎜🎜🎜2. Starten Sie den Nginx-Dienst neu🎜🎜🎜systemctl restart nginx🎜🎜🎜3. Besuchen Sie den Host-Computer, um den Browser-Cache zu leeren, und besuchen Sie 🎜🎜So konfigurieren Sie Nginx Anti-Hotlink🎜🎜Leeren Sie den Browser-Cache und besuchen Sie🎜🎜So konfigurieren Sie Nginx Anti-Hotlinking🎜🎜Es ist ersichtlich, dass die Anti-Hotlinking-Konfiguration eine Rolle spielt🎜🎜🎜3. Konfigurieren Sie Anti-Hotlinking, um andere Ressourcen zurückzugeben🎜🎜🎜🎜1 . Bearbeiten Sie die Nginx-Konfigurationsdatei. 🎜🎜🎜Fügen Sie einen virtuellen Host für den Anti-Hotlinking-Schutz hinzu. Ressourcen werden neu geschrieben. Hotlinking, durch vertikale Balken getrennt |. 🎜valid_referers site1.test.com *.nginx.org ist eine durch Leerzeichen getrennte Whitelist und * kann zum Festlegen des Pan-Domain-Namens verwendet werden. 🎜if ($invalid_referer) {} wird verwendet, um zu bestimmen, ob es mit der Whitelist übereinstimmt. Wenn es nicht mit der Whitelist übereinstimmt, wird der Inhalt in {} ausgeführt. 🎜rewrite ^/ ; ist eine Rewrite-Ressource. Wenn sie nicht der Whitelist entspricht, wird sie an diese Adresse umgeschrieben. 🎜return 403; bedeutet, dass der zurückgegebene Statuscode 403 ist. 🎜🎜🎜2. Erstellen Sie das Site3-Stammverzeichnis🎜🎜rrreee🎜🎜3. Laden Sie die Datei notfound.jpg in das Verzeichnis /var/wwwroot/site3 hoch🎜🎜🎜🎜4. Starten Sie den Nginx-Dienst neu nginx🎜🎜🎜5. Bearbeiten Sie die c:windowssystem32driversetchosts-Datei auf dem Host-Computer. 🎜🎜🎜Zuordnung zu site3.test.com hinzufügen. 192.168.204.11 site1.test.com. 192.168.204.11 site2.test. com 192.168.204.11 site3.test.com 🎜🎜🎜🎜

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Nginx Anti-Hotlinking. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage