在CentOS上配置Nginx防盗链,可以通过以下几种方法实现:
valid_referers
指令编辑Nginx配置文件:
打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
。
sudo vi /etc/nginx/nginx.conf
添加防盗链配置:
在server
块中添加valid_referers
指令。例如:
server {
listen 80;
server_name example.com;
location /protected/ {
valid_referers none blocked server_names example.com www.example.com;
if ($invalid_referer) {
return 403;
}
# 其他配置...
}
}
这里的valid_referers
指令指定了允许的引用来源。none
表示不允许任何引用,blocked
表示允许被Nginx阻止的引用,server_names
表示允许的域名。
重启Nginx: 保存配置文件并重启Nginx以应用更改。
sudo systemctl restart nginx
ngx_http_referer_module
模块确保模块已加载:
确保Nginx已经编译并加载了ngx_http_referer_module
模块。可以通过以下命令检查:
nginx -V 2>&1 | grep --color=auto referer
如果输出中包含--with-http_referer_module
,则表示模块已加载。
编辑Nginx配置文件:
打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
。
sudo vi /etc/nginx/nginx.conf
添加防盗链配置:
在server
块中添加valid_referers
指令。例如:
server {
listen 80;
server_name example.com;
location /protected/ {
valid_referers none blocked server_names example.com www.example.com;
if ($invalid_referer) {
return 403;
}
# 其他配置...
}
}
重启Nginx: 保存配置文件并重启Nginx以应用更改。
sudo systemctl restart nginx
如果上述方法不能满足需求,可以考虑使用第三方模块,如ngx_http_xss_clean_module
或ngx_http_security_module
,这些模块提供了更高级的安全功能,包括防盗链。
通过以上方法,可以在CentOS上配置Nginx防盗链,保护网站资源不被非法引用和下载。