验证中...
助力高校计算机教育 —— 码云为老师推出免费高校版,高达 200 人的协作团队
语言: 其他
分类: 软件配置
最后更新于 2018-03-16 16:55
片段 1 片段 2 片段 3 片段 4 片段 5
location正则匹配符号
原始数据 复制代码
~ 和 ~* :(区分大小写匹配)和(不区分大小写匹配)
!~ 和 !~* :(区分大小写不匹配)和(不区分大小写不匹配)
^~ :如果该选项匹配,则只匹配该选项,不匹配其他选项
= :精确字符匹配
@ :使用内部定向,如: error_page,try_files
-f 和 !-f :用来判断是否存在文件
-d 和 !-d :用来判断是否存在目录
-e 和 !-e :用来判断是否存在文件或目录
-x 和 !-x :用来判断文件是否可执行
.  : 匹配除换行符以外的任意字符
? : 重复0次或1次
+  : 重复1次或更多次
*  : 重复0次或更多次
\d  : 匹配数字
^  : 匹配字符串的开始
$  : 匹配字符串的介绍
{n}  : 重复n次
{n,}  : 重复n次或更多次
[c]  : 匹配单个字符c
[a-z]  : 匹配a-z小写字母的任意一个
常用全局变量
原始数据 复制代码
$args  : #这个变量等于请求行中的参数,同$query_string
$content_length  : 请求头中的Content-length字段
$content_type : 请求头中的Content-Type字段
$document_root  : 当前请求在root指令中指定的值
$document_uri  : 与$uri相同
$host  : 请求主机头字段,否则为服务器名称
$http_user_agent  : 客户端agent信息
$http_cookie  : 客户端cookie信息
$limit_rate  : 这个变量可以限制连接速率
$request_method  : 客户端请求的动作,通常为GET或POST
$request_uri  : 包含请求参数的原始URI,不包含域名
$remote_addr  : 客户端的IP地址
$remote_port  : 客户端的端口
$remote_user  : 已经经过Auth Basic Module验证的用户名
$request_filename  : 当前请求的文件路径,由root或alias指令与URI请求生成
$scheme  : HTTP方法(如http,https)
$server_protocol  : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1
$server_addr  : 服务器地址,在完成一次系统调用后可以确定这个值
$server_name  : 服务器名称
$server_port  : 请求到达服务器的端口号
$uri  : 不带请求参数的当前URI,$uri不包含域名
匹配规则优先级
原始数据 复制代码
1、等号(=)优先级最高,一旦匹配成功,则不再查找其他匹配项。
2、^~ 类型表达式。一旦匹配成功,则不再查找其他匹配项。
3、正则表达式类型(~|~*)的优先级次之。如果有多个location的正则能匹配,选择最长的那个。
4、常规字符串匹配类型。按前缀匹配。
静态资源抽离
原始数据 复制代码
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
root /data;
}
location ~ /res {
root(alias) /data;
expires 7d; #资源缓存
}
使用alias在寻址时会去掉/res这级目录,且目录名后面一定为”/data/”型
rewrite
原始数据 复制代码
last :相当于apache里面的[L]标记,表示rewrite。
break :本条规则匹配完成后,终止匹配,不再匹配后面的规则。
redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址。
permanent :返回301永久重定向,浏览器地址会显示跳转后的URL地址
rewrite ^/(.*) http://www.abc.com/$1 last; # (.*) 为替换的 $1
使用last和break实现URI重写,浏览器地址栏不变。
使用alias指令必须用last标记,last标记在本条rewrite规则执行完毕后,会对其所在server{......}标签重新发起请求
使用proxy_pass指令时,需要使用break标记,标记则在本条规则匹配完成后,终止匹配。

评论列表( 0 )

你可以在登录后,发表评论

10_float_left_people 10_float_left_close