nginx将按照1,2,3,4的顺序对server name进行匹配,只有有一项匹配以后就会停止搜索,所以我们在使用这个指令的时候一定要分清楚它的匹配顺序(类似于location指令)。 server_name指令一项很实用的功能便是可以在使用正则表达式的捕获功能,这样可以尽量精简配置文件,毕竟太长的配置文件日常维护也很不方便。 二、实例 下面是...
Nginx正则表达式是用于匹配和处理Nginx配置文件中位置路径或server_name的一种模式匹配工具。它可以根据特定的规则来匹配请求的URL或域名,并根据匹配结果进行相应的处理。 Nginx正...
表示重复零次或者一次,{n}表示重复n次,{n,} 表示重复n次或者更多次,{n,m}表示重复n次到m次。 这种正则表达式还可以帮我们提取一些变量,用小括号表示(),多个小括号里提取出来的变量分别用$1,$2,$3...表示,也可以自定义一个值表示,问号加尖括号表示,如下, server { server_name ~^(www\.)?(?<domain...
location指令用来设置请求的URL url 变量是匹配的请求字符串,可以不包含正则表达式,也可以包含正则表达式,那么nginx服务器在搜索匹配location的时候,是先使用不包含正则表达式进行匹配,找到一个匹配度最高的一个,然后在通过包含正则表达式的进行匹配,如果能直接访问,匹配不到,就使用刚才匹配度最高的那个localtion 来处理请求...
3.正则表达式规则 1.Nginx配置中没有server_name会怎样? 此时Nginx会自动设置成server_name "";它不会匹配任何域名,导致Nginx会优先将HTTP请求交给其它server处理。如果其它server不处理,则还是交给该server处理。 Nginx选用server的规则: 当Nginx在某个端口收到一个HTTP请求时,会交给监听该端口的server处理。
正则匹配格式,必须以~开头,比如:server_name ~^www\d+\.example\.net;。如果开头没有,则nginx认为是精确匹配,或者如果匹配字符中含有∗号,则会被认为是通配符匹配,不过非法的通配符格式。在逻辑上,需要添加和锚定符号。注意,正则匹配格式中.为正则元字符,如果需要匹配.,则需要反斜线转义。如果正则匹配中含有{和...
server_name还可以使用正则表达式进行匹配,用法如下: server { listen 80; server_name ~^(www\.)?example\.com$; location / { root /var/www/html; } } 该配置可以匹配www.naquan.com或naquan.com两种域名。 4. 通配符 server_name还支持通配符,用法如下: ...
server_name ~^(www\.)?(?<domain>.+)$; location /{root/site/$domain;} #其中$domain指的是匹配成功后server_name中<domain>部分的值 }``` server的匹配顺序: 1. 具体的域名 2.*号在前的域名 3.*号在后的域名 4. 正则表达式域名(若是多个正则表达式都满足,则使用排在最前的哪个) ...
例如,我们可以使用正则表达式来匹配以"test"开头的域名: server_name ~^test.*; 当请求的Host头域为test.example、test123.example等等时,该虚拟主机将会被匹配到。 需要注意的是,正则表达式匹配是比较耗费资源的操作,在高并发的情况下可能会影响性能。因此,在配置中尽量避免大量使用正则表达式匹配。 三、server_nam...