Nginx从陌生到入门05——防盗链的基础配置

上一节课的内容是基于反向代理的负载均衡。这一节的内容是防盗链。这里简单说一下什么是防盗链

Nginx的防盗链是一种用于保护资源免受盗链的安全机制。盗链指的是其他网站在未经授权的情况下直接使用你网站上的资源,例如图片、视频或其他文件,消耗你的带宽和资源。Nginx可以检查HTTP请求中的Referer字段,该字段指示了请求的来源网页。你可以配置Nginx只允许特定的Referer来源访问资源,拒绝其他非授权的请求。
Nginx的防盗链可以实现以下作用:

  • 节省带宽和资源消耗:防止其他网站直接使用你的资源,可以减少非授权访问的流量消耗,提高服务器的响应速度和性能。
  • 保护数据安全:防止未经授权的访问可以减少数据泄露的风险。只有经过授权的用户或来源才能访问敏感数据。
  • 维护内容版权:如果你有版权保护的内容,防盗链可以阻止其他网站盗用你的内容,维护你的知识产权。

    话不多说,开搞~

  • 在nginx的配置文件里,我们依然采用上一节的servername或者你也可以新配置一个,这个都可以。配置是这样的。 防盗链的配置我们会放在location里面。

    
    server {
      listen 80;
      server_name test3.aionlinefun.icu;
    
    location / {
         `root html` /test;
    index index.htm index.html;
    }
    }
  • 这是一个站点的基础配置。接着我们在当前 html所在的路径新建一个img文件夹,里面放一个 图片test.png。
  • 然后我们编辑nginx.conf配置文件。在刚刚的server里新增一个location。配置如下 。这个的意思是当我们访问img路径下的资源时候,nginx会去 /usr/local/nginx 下的img路径里找对应的资源,道理和 root html 是一样的。 注意这个location的位置一定是在对应的server里面。

    location /img/ {
    root /usr/local/nginx;
    autoindex on;
    }
    
  • 现在我们尚未开启防盗链,那么我从我电脑访问这个资源,以及服务器自己访问这个资源都是没问题的。截图如下:
  • 接着我要开启防盗链,只允许referer为空或者blocked或者指定的域名访问 。 我们在刚刚的img对应的location新增valid_referers配置,配置如下。

    location /img/ {
    valid_referers none blocked *.aionlinefun.icu;              #这一行相当于你要放行的白名单
    if ($invalid_referer) {
    return 403; }
    root /usr/local/nginx;
    autoindex on;
    }
    
  • 重启nginx服务,我们来验证一下。 当我们直接访问是可以访问的,当我们使用curl -e 来指定Referer 为百度时候,则就访问失败了。
  • 同理,如果你想你的服务器上的图片只允许指定的域名访问,那么就可以在刚刚域名的位置填写你自己的域名即可。这样其他人盗用你图床的图片,结果都是403 。如果你想其他的静态资源也开启防盗链。 你可以在location那里填写类似这样的正则:location ~ ..(gif|jpg|ico|png|css|svg|js)$来实现。

值得说明一下的是,配置了none字段,浏览器直接访问图片是可以的,浏览器直接打开图片,它的referer是空的。

**Referer(引荐者)是HTTP请求头的一个字段,用于指示发送当前请求的页面的URL。它告诉服务器从哪个页面链接或跳转过来的。
当你通过浏览器直接访问一个URL时,通常不会发送Referer字段。这是因为直接在浏览器中输入URL或使用书签等方式访问页面时,没有引荐来源。因此,如果你通过浏览器直接访问资源,服务器可能不会收到Referer字段**

创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇