server_name可以跟多个主机名,名称可以使用通配符和正则表达式(通常以~开头):当nginx收到一个请求时,会取出去首部的server的值,而后跟众server_name进行比较:比较方式
(1)先做精确匹配
(2)左侧通配符匹配
(3)右侧通配符匹配
(4)正则表达式匹配
4.server_name_hash_bucket_size 32|64|128
为了实现快速主机查找,nginx使用hash表来保存主机名
5.location [ =|~ |~* |^~] uri { ... }
location @name { ... }
功能:允许根据用户请求的URI来匹配指定的各location以进行访问匹配;匹配到时,将被location块中的配置所处理
== 精确匹配
~:正则表达式模式匹配,匹配时区分字符大小写
~*:正则表达式模式匹配,匹配时忽略字符大小写
^~:只需要前半部分与uri匹配即可,不检查正则表达式
匹配优先级:
字符字面量最精确匹配、正则表达式索引(有多个匹配到时,由第一个匹配到的所处理)、安字符字面量