location ~* \.(gif|jpg|png|webp)$ { valid_referers none blocked server_names *.testnginx.com ~\.baidu\. \.google\.; if ($invalid_referer) { return 403; } } 如果referer不是示例中的这些域名,则会返回403错误。 日志 使用模块ngx_http_log_module 自定义日志格式: 12345 log_format json_lo...
$request_filename:D:\nginx/html/test1/test2/test.php 6、防盗链 location ~* \.(gif|jpg|swf)$ { valid_referers none blocked start.igrow.cn sta.igrow.cn; if ($invalid_referer) { rewrite ^/ http://$host/logo.png; } } 7、根据文件类型设置过期时间 location ~* \.(js|css|jpg|jpeg|...
Nginx中有一个指令 valid_referers. 该指令可以用来获取 Referer 头域中的值,并且根据该值的情况给 Nginx全局变量 invalidreferer赋值。如果Referer头域中没有符合validreferers指令的值的话,invalidreferer赋值。如果Referer头域中没有符合validreferers指令的值的话,invalid_referer变量将会赋值为 valid_referers 指令基本...
PREACCESS 阶段是在连接之前要做的访问控制, 这个阶段有 limit_conn 和 limit_req 等模块工作。ACCESS 阶段是解决用户能不能访问,比如根据用户名、密码限制用户访问(auth_basic 模块)、根据 ip 限制用户访问(access 模块)以及第三方模块认证限制用户的访问(auth_request模块)。POST_ACCESS 是在 ACCESS 之后要做的一...
if($request_method =POST){ return 405; //拒绝405 } if($slow){ limit_rate 10k; //慢的用户分到10k速率; } if($invalid_referer){ return 403; //黑名单403,返回; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ...
if (condition) return code; } 1. 2. 3. 用于检测条件是否成立 http核心模块的内置变量: $uri:当前请求的uri,不带参数 $request_uri:请求的uri,带完整参数 $host:http请求报文中host首部;如果请求中没有host首部,则以处理此请求的虚拟主机的主机名代替 ...
语法为if(condition){...},对给定的条件condition进行判断。如果为真,大括号内的rewrite指令将被执行,if条件(conditon)可以是如下任何内容: 当表达式只是一个变量时,如果值为空或任何以0开头的字符串都会当做false 直接比较变量和内容时,使用=或!= ~正则表达式匹配,~*不区分大小写的匹配,!~区分大小写的不匹配 ...
2、 access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; access_log off; 访问日志文件路径,格式及相关的缓冲的配置 buffer=size flush=time 示例 log_format compression '$remote_addr-$remote_user [$time_local] ' ...
if (condition) { ... } 其中,花括号代表一个作用域,形成一个if配置块,是条件为真时的Nginx配置。condition为判断条件( true/false ),它可以支持以下几种设置方法: 变量名-如果变量的值为空字符串或者“0”开头的任意字符串,if指令认为条件为false,其他情况为true,比如: ...
{ echo_subrequest_async POST '/sub' -q 'foo=Foo' -b 'hi'; echo_subrequest_async PUT '/sub' -q 'bar=Bar' -b 'hello'; } location /sub { echo "querystring: $query_string"; echo "method: $echo_request_method"; echo "body: $echo_request_body"; echo "content length: $http_...