nginx禁止未绑定域名访问;nginx无效域名;return 444;该网页无法正常运作,未发送任何数据

时间:2024-03-21 19:42:27

 

nginx 只允许某些域名访问 其他一律不能访问 ,是怎么写的?把下面server段配置添加你的nginx.conf即可

对于这个问题可以参考官方文档

原文

In catch-all server examples the strange name “_” can be seen:

server {
    listen       80  default_server;
    server_name  _;
    return       444; # 过滤其他域名的请求,返回444状态码
}

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 “[email protected]#” may equally be used.

 

解释:

在这个server段实例可以看到:奇怪的server_name名字“ _ “

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

其实这个名字没有什么特别的,它仅仅是一个许多无效的域名中的一个代表,与任何真实的名字永远不会相交。其它无效的名称,如“ - “ 和” !@# “也可同样使用
default_server:nginx的虚拟主机是通过HTTP请求中的Host值来找到对应的虚拟主机配置,如果找不到呢?那 nginx就会将请求送到指定了 default_server 的 节点来处理

对于未绑定的域名指向你的服务器时,匹配不到你配置的虚拟主机域名后,会默认使用这个虚拟主机,然后直接返回404。

真实案例:

return 444不是在network中看http的状态码,而是 该网页无法正常运作,未发送任何数据

个人认为,return 444;还有终止输出的功能

nginx禁止未绑定域名访问;nginx无效域名;return 444;该网页无法正常运作,未发送任何数据

 

nginx禁止未绑定域名访问;nginx无效域名;return 444;该网页无法正常运作,未发送任何数据

注释掉return 444;网站可以正常访问