Nginx的核心模块中已经有了防盗链的相关功能。在配置Nginx之前,我们需要先确认Nginx是否开启了防盗链模块。如果没有开启,则需要重新编译Nginx或者安装对应的模块。
防盗链配置方法
Nginx的防盗链功能可以通过配置文件中的location指令来实现。我们需要在Nginx的虚拟主机配置文件中添加以下内容:
location ~* .(gif|jpg|jpeg|png|bmp)$ { valid_referers none blocked yourdomain.com; if ($invalid_referer) { return 403; } }
以上代码表示只有在wdzzz.com站点上才允许外链。如果来源不是wdzzz.com,则会返回403错误,无法直接访问。
白名单配置方法
如果你需要允许某些网站或者IP地址外链,可以把它们添加到白名单中。在Nginx中,白名单可以通过valid_referers指令来实现。例如,我们可以把下面这段代码添加到配置文件中的防盗链规则中来添加白名单:
location ~* .(gif|jpg|jpeg|png|bmp)$ { valid_referers none blocked yourdomain.com example.com 192.168.0.1; if ($invalid_referer) { return 403; } }
以上代码中,我们把wdzzz.com和example.com以及IP地址192.168.0.1添加到了白名单中,这些网站可以直接访问你的资源。
启用Rewrite模块
Nginx的Rewrite模块可以用于重写URL,我们可以利用Rewrite模块来隐藏源站的图片URL,从而增加盗链的难度,保护网站资源。我们需要在配置文件中添加以下内容:
if ($http_referer !~ ^http://(www.)?wdzzz.com(/|$)) { return 403; }
以上代码表示如果来源不是你的网站,就返回403错误。通过这种方式,可以有效防止盗链行为。