在类unix主机上,文件系统是区分大小写的,但在网络上却需要忽略大小写,比如一些网友上传照片的时候,图片后缀名一般是大写的。这将会导致我们前端缓存服务无法缓存或进行重复缓存,影响效率。
如果使用nginx,在配置location时,可以用~*忽略大小写,例如:
location ~* \.(ftpquota|htaccess|htpasswd)?$ { # ~*表示忽略大小写
deny all;
}
配置squid的acl时,可以用-i忽略大小写,例如:
acl domain dstdomain -i adocode.com(-i表示忽略大小写)
http_access deny domain
而在varnish的vcl语法中,可以用(?i)的正则表达式忽略大小写,例如:
if (req.http.referer !~ "(?i)icodex.org") { # (?i)表示忽略大小写
error 404;
}