一,指定默认server可以用default_server 当用户访问到了服务器,但与nginx配置文件中的所有server都匹配不上时, 则需要访问一个默认的server server { server_name _; listen 80 default_server; listen 443 ssl default_server;## To also support IPv6, uncomment this block# listen [::]:80 default_server;...
Nginx 的 default_server 指令 server { listen 80 default_server; server_nameoschina.netwww.oschina.net; ... } 先看看上面这段配置,listen 指令后面有一个参数 default_server ,这个参数是在 0.8.21 版本以后才有的,而之前是 default 指令。 Nginx 的虚拟主机是通过HTTP请求中的Host值来找到对应的虚拟主...
1 确实是通过 server_name 进行匹配然后转发请求的 2 如果没有匹配的 server_name,会默认跳转到 default_server 去 然后由 default_server 处理这个请求。 3 如果有匹配的 server_name 但是在这个 server 里面没有这个请求的处理方式的话,也会默认跳转到 default_server 去。 例如: blog.hjljy.cn 只配置了下面...
老王:”如果没有设置,那么我们入口初开始,根据端口号8888找到的第一个就是默认default_server“。 _代表无效的域名,不会与任何真实的server_name相交。”“匹配没有传递Host头信息的请求。 server { server_name ""; # List port listen 9999; location / { return 200 $hostname; } } 1. 2. 3. 4. 5...
server_name与host匹配优先级如下: 1、完全匹配 2、通配符在前的,如*.test.com 3、在后的,如www.test.* 4、正则匹配,如~^\.www\.test\.com$ 如果都不匹配 1、优先选择listen配置项后有default或default_server的 2、找到匹配listen端口的第一个server块 ...
有了default_server,小张心里松了一口气,不用担心server_name写错而白跑一趟了。但是要是Nginx没有设置default_server呢? 老王:”如果没有设置,那么我们入口初开始,根据端口号8888找到的第一个就是默认default_server“。 _代表无效的域名,不会与任何真实的server_name相交。”“匹配没有传递Host头信息的请求。
server_name与host匹配优先级如下: 1、完全匹配 2、通配符在前的,如*.test.com 3、在后的,如www.test.* 4、正则匹配,如~^\.www\.test\.com$ 如果都不匹配 1、优先选择listen配置项后有default或default_server的 2、找到匹配listen端口的第一个server块 ...
⑦如果所有Host头匹配失败,并且没有default_server,那么将会转向满足第一步的第一个server的listen指令。 2、server_name 格式 ①精确匹配 server_name www.xuegod.cn ②泛解析 server_name *.xuegod.cn; #替代部分子域名 server_name www.xuegod.*; #替代部分顶级域 ...
其中default_server是指定当相同地址和端口对有多个server对应时,如果在匹配过程中通过server_name也不能匹配到相关的server,带有default_server标志的server就成为该匹配的结果。 相同的IP以及端口只可以设置一个默认虚拟服务器。如果相同IP以及端口对应的server都没有标注default_server,那么配置文件中对于这个ip和端口对...
也就是当你本机IP访问的时候,都没匹配到,那就会匹配默认值,也就是第一个server。 此时默认的server就是第一个。虽然你没有配置192.168.1.2的IP,但nginx会默认有一个空的server_name。所以你通过192.168.1.2也能访问的。 具体可以阅读下这篇文章:nginx是怎么处理一个请求的?