diff --git a/content/post/nginx.md b/content/post/nginx.md index 8e19e41..aacc6ab 100644 --- a/content/post/nginx.md +++ b/content/post/nginx.md @@ -31,6 +31,43 @@ categories: ["web"] - $request_uri 包含请求参数的原始URI,不包含主机名,如"/foo/bar.php?arg=baz" - $document_uri $uri 不带请求参数的当前URI,不包含主机名,如"/foo/bar.html" +## map +-语法 + ``` + map 源变量 自定义变量 { + hostnames; # 可以使用通配来匹配源变量 + default 0; # 如果都不匹配,自定义变量的值是 0 + 源变量匹配字符串1 自定义变量值1; + 源变量匹配字符串2 自定义变量值2; + ... + 源变量匹配字符串n 自定义变量值n; + include filename; # 包含“源变量匹配字符串”和“自定义变量值”对应关系的文件 + } + ``` + +- 位置:http +- 匹配优先级,由高到低 + * 常量 + * 固定后缀的通配,示例如下 + ``` + *.aa.com 1; + *.bb.cn 2; + ``` + + * 固定前缀的通配,示例如下 + ``` + aa.bb.* + cc.* + ``` + + * 正则,必须以“~”或“~\*”开头,优先匹配第一个,可以包含命名捕获和位置捕获,示例如下 + ``` + ~^ab.cd$ # “~”开头,大小写敏感 + ~*ab.cd$ # “~*”开头,大小写不敏感 + ~^ab(?.*)cd$ # 包含命名捕获 + ~^ab(/.*) # 包含位置捕获 + ``` + ## rewrite - rewrite {url正则} {replacement} {last|break|redirect|permanent}; @@ -91,7 +128,7 @@ categories: ["web"] - 语法 ``` error_page code ... [=[response]] uri; - code 只能是 4xx 或 5xx + # code 只能是 4xx 或 5xx # uri 可以包含变量,内部重定向请求,方法是 GET ```