nginx配置防盗链

什么是盗链

是在自己的界面展示不在自己服务器上的内容,通过技术手段获得他人服务器的资源地址,在自己页面向用户提供此内容,从而减轻自己服务器的负担,因为真实的空间和流量来自别人的服务器。

防盗链设计思路

区别哪些请求时非正常用户请求

具体配置

贴上配置文件吧

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    #include       /etc/nginx/mime.types;
    #default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen      80;
        server_name localhost;

        location / {
                root /usr/share/nginx/html;
                index index.html index.htm;
        }

        location ~* \.(jpg|gif|png)$ {
                root /home/picture;
                valid_referers none blocked 129.211.75.230;
                if ($invalid_referer) {
                        return 403;
                }

        }

    }

具体说一下配置的含义。
valid_referers none blocked 这里可以简单的理解为设置白名单,也就是说谁可以对我们服务器的静态资源进行引用。这里是可以填写多个地址或域名的,最少也要填上本机的地址。
具体分析的话,valid_referers会根据Referer Header头的内容分配一个值为0或1给变量$invalid_referer
none 代表没有referer
blocked 代表有referer但是被防火墙或者是代理给去除了
之后的if判断,即内置变量 $invalid_referer,如果引用我们的不是指令中定义的ip或域名,则该内置变量置为1,响应403。

效果展示

在这里插入图片描述
可以看到,这里是我们做过防盗链配置后在本机服务器中引用其他服务器中图片的效果图,可以看到图片并没有成功加载,而返回的状态码为403,也就是我们刚才设置return的状态码。
至此,防盗链配置成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值