So konfigurieren Sie Nginx's Anti-Hotlinking

So konfigurieren Sie Nginx's Anti-Hotlinking

Experimentelle Umgebung

• Eine minimal installierte virtuelle CentOS 7.3-Maschine
• Konfiguration: 1 Kern/512 MB
•nginx Version 1.12.2

1. Hotlink-Website konfigurieren

1. Starten Sie eine virtuelle Nginx-Maschine und konfigurieren Sie zwei Websites

vim /etc/nginx/conf.d/vhosts.conf

Fügen Sie den folgenden Inhalt hinzu

Server {
 hören Sie 80;
 Servername site1.test.com;
 Stamm /var/wwwroot/site1;
 Index Index.html;

 Standort / {
 }
}

Server {
 hören Sie 80;
 Servername site2.test.com;
 Stamm /var/wwwroot/site2;
 Index Index.html;

 Standort / {
 }
} 

2. Bearbeiten Sie die Datei C:\Windows\System32\drivers\etc\hosts auf dem Hostcomputer

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

3. Erstellen Sie das Stammverzeichnis der Website

mkdir /var/wwwroot
cd /var/wwwroot
mkdir site1
mkdir site2
echo -e "<h1>Site1</h1><img src='1.jpg'>" >> Site1/index.html
echo -e "<h1>site2</h1><img src='http://site1.test.com/1.jpg'>" >> site2/index.html

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

5. Starten Sie den Nginx-Dienst

systemctl startet nginx neu
netstat -anpt | grep nginx 

6. Öffnen Sie Port 80 in der Firewall

0
Firewall-Befehl --zone=public --add-port=80/tcp --permanent
Firewall-Befehl --reload

7. Zugriff auf den Host-Rechner

http://site1.test.com

http://site2.test.com

2. Konfigurieren Sie site1.test.com Anti-Hotlinking

1. Bearbeiten Sie die Nginx-Konfigurationsdatei

Server {
 hören Sie 80;
 Servername site1.test.com;
 Stamm /var/wwwroot/site1;
 Index Index.html;

 Standort / {
 }

 Standort ~ \.(jpg|png|gif|jpeg)$ {
  gültige Referrer site1.test.com;
  wenn ($ungültiger_Referrer) {
   Rückgabe 403;
  }
 }
}
Server {
 hören Sie 80;
 Servername site2.test.com;
 Stamm /var/wwwroot/site2;
 Index Index.html;

 Standort / {
 }
} 

2. Starten Sie den Nginx-Dienst neu

systemctl restart nginx

3. Zugriff auf den Host-Rechner

Leeren Sie den Browser-Cache und besuchen Sie http://site1.test.com

Leeren Sie den Browser-Cache und besuchen Sie http://site2.test.com

Es ist ersichtlich, dass die Anti-Hotlink-Konfiguration eine Rolle gespielt hat

3. Konfigurieren Sie Anti-Hotlinking, um andere Ressourcen zurückzugeben

1. Bearbeiten Sie die Nginx-Konfigurationsdatei

Fügen Sie einen virtuellen Host hinzu, um die durch Anti-Hotlinking geschützten Ressourcen neu zu schreiben

Server {
 hören Sie 80;
 Servername site1.test.com;
 Stamm /var/wwwroot/site1;
 Index Index.html;
 Standort / {
 }
 Standort ~ \.(jpg|png|gif|jpeg)$ {
  gültige Referrer site1.test.com;
  wenn ($ungültiger_Referrer) {
   neu schreiben ^/ http://site3.test.com/notfound.jpg;
   #Rückgabe 403;
  }
 }
}
Server {
 hören Sie 80;
 Servername site2.test.com;
 Stamm /var/wwwroot/site2;
 Index Index.html;
 Standort / {
 }
}
Server {
 hören Sie 80;
 Servername site3.test.com;
 Stamm /var/wwwroot/site3;
 Index Index.html;
 Standort / {
 }
}

erklären

Standort ~ \.(jpg|png|gif|jpeg)$ {} ist der Dateityp zum Einstellen von Anti-Hotlinking, getrennt durch eine vertikale Linie |.
valid_referers site1.test.com *.nginx.org; ist eine Whitelist, getrennt durch Leerzeichen. Sie können * verwenden, um Platzhalter-Domänennamen festzulegen.
if ($invalid_referer) {} wird verwendet, um zu bestimmen, ob die Whitelist erfüllt ist. Wenn die Whitelist nicht erfüllt ist, wird der Inhalt in {} ausgeführt.
rewrite ^/ http://site3.test.com/notfound.jpg; dient zum Umschreiben der Ressource. Wenn sie nicht mit der Whitelist übereinstimmt, wird sie an diese Adresse umgeschrieben.
return 403; bedeutet, dass der zurückgegebene Statuscode 403 ist.

2. Erstellen Sie das Stammverzeichnis von site3

cd /var/wwwroot
mkdir site3
echo -e "<h1>site3</h1><img src='nicht gefunden.jpg'>" >> site3/index.html

3. Laden Sie die Datei notfound.jpg in das Verzeichnis /var/wwwroot/site3 hoch

4. Starten Sie den Nginx-Dienst neu

systemctl restart nginx

5. Bearbeiten Sie die Datei C:\Windows\System32\drivers\etc\hosts auf dem Hostcomputer

Zuordnung für 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

6. Besuchen Sie http://site2.test.com auf dem Hostcomputer

Wie Sie sehen, wird die in Site2 gestohlene Datei 1.jpg von Site1 zur Datei notfound.jpg auf Site3 umgeleitet.

Zusammenfassen

Oben ist die Vorgehensweise zum Konfigurieren des Anti-Hotlinks von Nginx beschrieben, die ich Ihnen vorgestellt habe. Ich hoffe, sie wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Implementierungscode von Nginx Anti-Hotlink und Optimierung in Linux
  • 3 Möglichkeiten, Hotlinks in Nginx zu verhindern
  • Nginx Anti-Hotlink-Konfigurationsmethode
  • Einführung in die Anti-Hotlinking-Methode unter Nginx-Server
  • Konfigurationsbeispiel für den Nginx-Image-Hotlink-Schutz
  • Führen Sie die folgenden Schritte aus, damit Nginx Anti-Hotlinking konfiguriert.
  • Der gesamte Prozess der Nginx-Anti-Hotlink- und Service-Optimierungskonfiguration

<<:  Detaillierte Erläuterung des SSR-Server-Side-Rendering-Beispiels von Vue

>>:  Analyse der Probleme und Lösungen beim Importieren großer Datenmengen in MySQL

Artikel empfehlen

Beispielanalyse für MySQL Oracle- und SQL Server-Paging-Abfragen

Ich habe vor Kurzem eine einfache Studie zur Date...

Installieren und verwenden Sie Git und GitHub unter Ubuntu Linux

Einführung in Git Git ist eine Open-Source-Versio...

Verwendung des Fokus-innerhalb-Selektors von CSS3

Pseudoelemente und Pseudoklassen Apropos, schauen...

Wie verfolgt Vue Datenänderungen?

Inhaltsverzeichnis Hintergrund Beispiel Missverst...

So führen Sie MySQL mit Docker-Compose aus

Verzeichnisstruktur . │ .env │ docker-compose.yml...

Vue realisiert Click-Flip-Effekt

Verwenden Sie Vue, um einfach einen Click-Flip-Ef...

So ändern Sie das Passwort in MySQL 5.7.18

So ändern Sie das Passwort in MySQL 5.7.18: 1. Fa...

Detaillierte Erläuterung des Fehlerproblems der Case-When-Anweisung

Vorwort In der MySQL-Datenbank verwenden wir manc...

So bringen Sie Ihren Browser dazu, mit JavaScript zu sprechen

Inhaltsverzeichnis 1. Das einfachste Beispiel 2. ...

Vue + echart realisiert Doppelsäulendiagramm

In diesem Artikel wird der spezifische Code von v...

Verstehen von MySQL-Deadlock-Routinen durch eindeutige Index-S-Sperre und X-Sperre

In „MySQL-Deadlock-Probleme anhand des Quellcodes...

Detaillierte Erklärung zum MySQL-Dateispeicher

Was ist ein Dateisystem Wir wissen, dass Speicher...