当nginx做负载均衡的时候,后端的nginx配置里面有这么一段配置:
server {
listen 80 default_server;
server_name _;
... ...
}
官网上是这么解释的
在catch-all server示例中,可以看到奇怪的名称“_”:
这个名字没有什么特别之处,它只是无数无效域名中的一个,这些域名永远不会与任何真实的名字交叉。其他无效的名称,如“_”和“!”@#”同样可以使用。
0.6.25以上的nginx版本支持特殊名称“*”,这个名称被错误地解释为一个通用名称。它从来没有充当通配符或通配符服务器名。相反,它提供了server_name_in_redirect指令现在提供的功能。现在不推荐使用特殊的名称“*”,应该使用server_name_in_redirect指令。请注意,无法使用server_name指令指定全面性名称或默认服务器。这是listen指令的属性,而不是server_name指令的属性。参见“nginx如何处理请求”。可以定义监听端口*:80和*:8080的服务器,并将其中一个端口*:8080作为默认服务器,而另一个端口*:80:
这个配置常用于有多个域名的时候,可以直接调回访问的url域名。