Nginx防盗链是一种安全机制,用于防止其他网站直接链接到你的网站上的资源(如图片、视频、文件等),从而避免不必要的带宽消耗和潜在的安全风险。当其他网站直接链接到你的资源时,这些请求会经过你的服务器,消耗你的带宽资源,并可能暴露你的服务器信息。通过配置Nginx防盗链,你可以限制只有来自特定域名的请求才能访问你的资源。

1

防盗链演示

Nginx防盗链:资源保护新利器,拒绝盗链行为!_tomcat

防盗链就是指别人的网站不可以访问我们自己网站的js,css,图片等静态资源,第一,图片有版权,我们不希望别人引用,第二,别人引用了我们的地址,消耗的是我们网站的流量,因为很多网站买的是云服务,是按流量收费的,如果不加防盗链的限制,会提升我们的运营成本,所以一个网站最好要考虑防盗链配置。

  1. 为了做防盗链的演示,修改Tomcat1的/data/program/tomcat8/webapps/ROOT目录下的index.jsp,把Tomcat图片改成访问Nginx代理服务器里的静态图片资源,代码如下:
<img src="http://192.168.1.8/tomcat.png" alt="[tomcat logo]" />

如图:

Nginx防盗链:资源保护新利器,拒绝盗链行为!_运维_02

  1. 访问Tomcat1的地址http://192.168.1.9:8080,如果没有防盗链配置,则可以访问到Nginx服务器上的静态Tomcat图标,如下:
  2. 修改/data/program/nginx/conf/userconf目录下的proxy.conf配置,通过valid_referers设置解决防盗链问问题,让除了192.168.1.8IP以外的服务器不能访问Nginx服务器上的静态资源
upstream tomcat8 {
    server 192.168.1.9:8080;
    server 192.168.1.10:8080;
}

server{
    listen 80;
    server_name localhostdomin;
    location / {
        proxy_pass http://tomcat8;
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET,POST,DELETE';
        add_header 'Access-Control-Allow-Header' 'Content-Type,*';
    }
    location ~* .+\.(js|css|png|svg|ico|jpg)$ {
        valid_referers none blocked 192.168.1.8;          
        if ($invalid_referer){
            return 404;
        }
        root static_resource;
        expires 1d;
    }  
}

如下图:

Nginx防盗链:资源保护新利器,拒绝盗链行为!_nginx_03

  1. 保存配置,重启Nginx服务器,再次访问Tomcat1的地址http://192.168.1.9:8080,因为上面设置了防盗链配置,因此不能访问到Nginx服务器上的静态Tomcat图标,如下:

以上就是防盗链产生了作用,导致192.168.1.9服务器部署的应用不可以访问192.168.1.8的图片。

注:192.168.1.9模拟的是别人的网站,192.168.1.8模拟自己的网站。