Nginxreferer:请求头控制模块详细说明以及案例
参考资料
Nginx的referer请求头控制模块主要用于控制请求的Referer头字段,通常用于防盗链、限制访问来源等场景。该模块可以通过配置来允许或拒绝特定来源的请求。
模块说明
ngx_http_referer_module:这是Nginx内置的模块,用于处理
Referer头字段。它可以通过配置来检查请求的Referer头,并根据配置的规则来决定是否允许请求。valid_referers:这是该模块的核心指令,用于定义合法的
Referer来源。可以配置多个来源,支持通配符和正则表达式。$invalid_referer:这是一个内置变量,当请求的
Referer头不符合valid_referers配置时,该变量的值为1,否则为0。
配置案例
以下是一个简单的Nginx配置案例,用于实现防盗链功能:
server {
listen 80;
server_name example.com;
location /images/ {
# 定义合法的Referer来源
valid_referers none blocked example.com *.example.com;
# 如果Referer不合法,返回403 Forbidden
if ($invalid_referer) {
return 403;
}
# 允许访问图片资源
root /var/www/html;
}
}配置解析
**valid_referers none blocked example.com *.example.com;**:
none:允许没有Referer头的请求。blocked:允许Referer头被防火墙或代理服务器修改的请求。example.com:允许来自example.com的请求。*.example.com:允许来自example.com子域名的请求。if ($invalid_referer) { return 403; }:
如果
Referer头不符合valid_referers的配置,返回403 Forbidden状态码,拒绝访问。
其他案例
允许特定IP访问:
server { listen 80; server_name example.com; location /images/ { valid_referers 192.168.1.100; if ($invalid_referer) { return 403; } root /var/www/html; } }使用正则表达式匹配Referer:
server { listen 80; server_name example.com; location /images/ { valid_referers ~^(www\.)?example\.com$; if ($invalid_referer) { return 403; } root /var/www/html; } }
通过这些配置,Nginx可以根据Referer头字段来控制请求的访问权限,从而实现防盗链等功能。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-71.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
