linux's docs

nginx: 4.1.0 servername-``误解


1. 官方示例

官方的catch-all示例

server {
    listen       80  default_server;
    server_name  _;
    return       444;
}

之前一直有一个误解就是_代表的是ip地址,但是按照官方的解释
There is nothing special about this name, it is just one of a myriad of invalid domain names which never intersect with any real name. Other invalid names like “--” and “!@#” may equally be used.
这个名称只是一个不与任何我们监听的有效域名有关的其他所有的无效域名,nginx同时通过端口后的default_server来与这个server_name配合,这样我们就可以达到了catch-all的目的。