Complete steps for Nginx to configure anti-hotlinking

Complete steps for Nginx to configure anti-hotlinking

need:

Usually, sites want to prevent videos and pictures on their websites from being stolen. After all, video traffic costs a lot of money (rich people don’t have to consider this).

1. Straight to the point, first upload the nginx configuration file

server {
listen 80;
server_name www.test.com;
root /data/web/;
index index.php index.html;
access_log /data/logs/nginx/biao.madacode.access.log main;

location /{
root /home/data/;
}

error_page 404 /usr/local/nginx/html/404.html;

location ~ .*\.(wma|wmv|asf|mp3|mp4|mmf|zip|rar|jpg|gif|png|swf|flv)$
{
valid_referers none blocked server_names *.test.com http://IP;
if ($invalid_referer) {
return 403;
}
expires 24h;
access_log off;

}
location ~ /\.
{
deny all;
}

}

2. Interpretation of the core configuration file of anti-hotlink

location ~ .*\.(wma|wmv|asf|mp3|mp4|mmf|zip|rar|jpg|gif|png|swf|flv)$
{
valid_referers none blocked server_names *.test.com http://IP;
if ($invalid_referer) {
return 403;
}
expires 24h;
access_log off;

}

vaild_referers Valid reference links, as follows, otherwise enter $invaild_refere and return 403 forbidden.

1. none

"Referer" source header is empty

2. blocked

The "Referer" source header is not empty, but the value is deleted by a proxy or firewall, and none of the values ​​start with http:// or https://.

3. server_names

The "Referer" source header contains the current server_names (current domain name)

3. Simulation Case Test

1. Add --referer to simulate reference and see the result is 403 directly. This proves that the above configuration is OK

[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 Forbidden
Server: Tengine
Date: Wed, 21 Aug 2019 09:54:44 GMT
Content-Type: text/html
Content-Length: 639
Connection: keep-alive 


Summarize

The above is the full content of this article. I hope that the content of this article will have certain reference learning value for your study or work. Thank you for your support of 123WORDPRESS.COM.

You may also be interested in:
  • Implementation code of Nginx anti-hotlink and optimization in Linux
  • 3 ways to prevent hotlinks in Nginx
  • Nginx Anti-Hotlink Configuration Method
  • Introduction to the method of anti-hotlinking under Nginx server
  • Nginx image hotlink protection configuration example
  • How to configure Nginx's anti-hotlinking
  • The whole process of Nginx anti-hotlink and service optimization configuration

<<:  Installation tutorial of mysql 5.7 under CentOS 7

>>:  js to achieve simple calendar effect

Recommend

MySQL isolation level detailed explanation and examples

Table of contents 4 isolation levels of MySQL Cre...

CSS3 realizes text relief effect, engraving effect, flame text

To achieve this effect, you must first know a pro...

Solution to forgetting MySQL root password in MACOS

MySQL is a relational database management system ...

Tutorial on how to quickly deploy a Nebula Graph cluster using Docker swarm

1. Introduction This article describes how to use...

How to run sudo command without entering password in Linux

The sudo command allows a trusted user to run a p...

What to do if you forget the initial password of MySQL on MAC

The solution to forgetting the initial password o...

Vue conditional rendering v-if and v-show

Table of contents 1. v-if 2. Use v-if on <temp...

How to implement JavaScript output of Fibonacci sequence

Table of contents topic analyze Basic solution Ba...

Detailed explanation of styles in uni-app

Table of contents Styles in uni-app Summarize Sty...

Examples of clearfix and clear

This article mainly explains how to use clearfix a...

CentOS 6-7 yum installation method of PHP (recommended)

1. Check the currently installed PHP packages yum...

Various problems encountered in sending emails on Alibaba Cloud Centos6.X

Preface: I have newly installed an Alibaba cloud ...

MYSQL string forced conversion method example

Preface Since the types of the same fields in the...

Detailed explanation of the solution to the nginx panic problem

Regarding the nginx panic problem, we first need ...