#限制IE访问
if($ http _ user _ agent ~ MSIE){ 0
返回503;
}
如果把MSIE改成Mozilla,像IE、火狐这样的pc浏览器基本都被限制了。
正则表达式匹配,其中:
~用于区分大小写的匹配
~ *不区分大小写。
!~还有!~ *分别是区分大小写的不匹配和不区分大小写的不匹配。
和目录匹配,其中:
* -f和!-f用于确定文件是否存在。
* -d和!-d用于确定目录是否存在。
* -e和!-e用于确定文件或目录是否存在。
* -x和!-x用于确定文件是否可执行。
该标志标有:
* last相当于apache中的[L]标记,意思是完成重写。
* break终止匹配,不再匹配以下规则。
*重定向返回302临时重定向地址栏将显示跳转后的地址。
*永久返回301永久重定向地址栏,它将显示跳转后的地址。
$args该变量等于请求行中的参数。
$content_length等于请求行的“content_length”值。
$content_type等于请求头中“content_type”的值。
$document_root等于当前请求的根指令指定的值。
$document_uri与$uri相同。
$Host与请求头中“Host”行中指定的值或请求到达的服务器的名称相同(没有主机行)。
$limit_rate允许有限的连接速率
$URI与当前请求中的URI相同,但它可以不同于初始值,例如内部重定向或使用index。
$server_protocol相当于请求的协议,使用“HTTP/1.0”或“HTTP/1.1”
$server_port请求到达的服务器的端口号。
$server_name请求到达的服务器的名称。
$server_addr请求到达服务器的ip。通常,获取该变量值的目的是进行系统调用。为了避免系统调用,有必要在侦听指令中指定ip并使用bind参数。
$request_URI包含参数的完整初始URI。
$request_method相当于请求的方法,通常是“GET”或“POST”
$request_filename当前请求的文件的路径名,它是根或别名和URIrequest的组合。
$request_body_file
$remote_user相当于用户名,由ngx_http_auth_basic_module进行身份验证。
$remote_port客户端端口
$remote_addr客户端ip
$query_string与$args相同
$http_user_agent用户代理,通常是浏览器。