如何在Nginx中阻止未定义的server_name?

前端之家收集整理的这篇文章主要介绍了如何在Nginx中阻止未定义的server_name?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有两个服务器{}块,其中包含我需要使用的域.

但我发现了一个问题…..如果我配置指向我的服务器的另一个域的DNS,Nginx响应正确!为什么?

Nginx应该以http错误响应!但它返回具有相同IP地址的网站,为什么?我没有该域名的服务器名称

谢谢!

最佳答案
它会响应,因为您没有配置单独的“默认”vhost.始终配置了默认或后备vhost,以便Nginx知道在收到您发送的类型的请求时该怎么做.

nginx documentation提供了如何执行server-name-to-vhost-matching的良好描述,但简而言之,我建议像这样配置一个新的vhost:

server {
  listen 80 default_server;
  root /usr/share/empty;
}

(如果尚未存在,则可能必须创建/usr/share / empty)

这将只为任何使用无法识别的vhost名称命中服务器的人提供一个空目录.如果你愿意,你可以通过各种错误页面获得更多功能.

猜你在找的Nginx相关文章