怎样防止 NGINX 中的图像盗链

图片盗链是指另一个网站链接到您网站图片上的图片,而不将这些图片托管在自己的服务器上。 它会减慢您的网站速度并增加您的数据带宽。 因此,在您的网站上禁用图像盗链非常重要。 以下是怎样防止 NGINX 中的图像盗链。

怎样防止 NGINX 中的图像盗链

以下是在 NGINX 中防止图像盗链的步骤。

1.打开NGINX配置文件

打开终端并运行以下命令打开 NGINX 服务器配置文件。

$ sudo vi /etc/nginx/nginx.conf

如果您为您的网站(例如 www.website.com)配置了单独的虚拟主机,例如 /etc/nginx/sites-enabled/website.conf 然后使用以下命令打开其配置

$ sudo vi /etc/nginx/sites-enabled/website.conf

奖励阅读:怎样强化 NGINX 服务器

2. 禁用 NGINX 中的图片盗链

在服务器块中添加以下位置块以防止 NGINX 中的图像盗链来自除您的域(例如 website.com)之外的所有域

location ~ .(gif|png|jpe?g)$ {
   valid_referers none blocked website.com *.website.com;
   if ($invalid_referer) {
      return 403;
   }
}

让我们一行一行地看上面的代码。 第一行将匹配各种图像文件扩展名。 如果要添加任何其他扩展名,可以添加新的管道“|” 随着新的扩展。

在下一行中,valid_referers 列出了允许链接到您的网站图像的所有域。 在其中提及您的网站(例如 website.com)。 您还可以添加要授予访问权限的任何其他域。 您还可以在此处包含 IP 地址。

如果请求来自一个没有在 valid_referers 中提到的域/IP,NGINX 将把它包含在 invalid_referer 中并返回“403: Access Forbidden”响应。

奖励阅读:怎样在 CentOS 上设置 NGINX 虚拟主机

如果您想防止盗链特定目录(例如 /uploads/)中的文件,请在 NGINX 配置文件中添加以下行。

location /uploads/ {
   valid_referers none blocked mywebsite.com *.mywebsite.com;
   if ($invalid_referer) {
      return 403;
   }
}

奖励阅读:怎样在 NGINX 中启用 CORS

3.重启NGINX服务器

最后,运行以下命令来检查更新的配置文件的语法。

$ sudo nginx -t

如果没有错误,请运行以下命令重新启动 NGINX 服务器。

$ sudo service nginx reload #debian/ubuntu
$ systemctl restart nginx #redhat/centos

就是这样! 希望以上教程能帮助您防止 NGINX 中的图片盗链。

BYNSS 可以在几分钟内轻松可视化数据,并在实时仪表板中进行监控。 今天就试试吧!