default_server 真的需要 server_name 吗?(Nginx)

Kai*_*Kai 2 nginx

default_server在Nginx中一一尝试了下面的4种代码。default.conf带有代码的文件位于/etc/nginx/conf.d/default.conf.

第一:与 server_name _;

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;

    return 500;
}
Run Code Online (Sandbox Code Playgroud)

第二:使用不同的服务器名称(私有 ip)server_name 10.0.0.0;(我电脑的私有 ip 是10.156.58.216

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name 10.0.0.0;
    
    return 500;
}
Run Code Online (Sandbox Code Playgroud)

第三:与 server_name "";

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name "";

    return 500;
}
Run Code Online (Sandbox Code Playgroud)

第四:没有 server name

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    return 500;
}
Run Code Online (Sandbox Code Playgroud)

我电脑的私网ip是10.156.58.216

在此处输入图片说明

然后,结果都是相同的显示500 Internal Server Error页面。

在此处输入图片说明

我认为default server,我们不需要server name。所以第四个代码没有server name很好用。

第四:没有服务器名称

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    return 500;
}
Run Code Online (Sandbox Code Playgroud)

我再问,server name真的需要default server吗?

Ric*_*ith 8

Nginx 文档

如果 server_name 未在 server 块中定义,则 nginx 使用空名称作为服务器名称。

关于server_name _;,同一份文件指出:

这个名字没有什么特别之处,它只是无数从不与任何真实名称相交的无效域名之一。