为什么即使在配置中只有localhost的虚拟主机,我也可以访问nginx服务器?

时间:2016-08-09 14:16:02

标签: nginx

我有一个安装nginx并使用默认配置的主机。对我来说很奇怪,即使在默认的nginx.conf中,只有一个带有server_name Publisher的虚拟服务器,但我仍然可以从笔记本电脑访问nginx欢迎页面。

我很确定配置文件是由nginx使用的,因为当我更改localhost的根时,它会在重新启动服务后生效。

关于我如何能够深入了解这一点的任何建议或任何想法?

1 个答案:

答案 0 :(得分:2)

Nginx默认配置的开头是:

server {
    listen       80;
    server_name  localhost;
    ...
}

Listens告诉Nginx它应该监听HTTP连接的主机名和TCP端口。仅供参考'听80;'相当于'listen *:80;'

server_name允许您使用基于域名的虚拟主机。如你所愿。但是你只有一个服务器块。所以听取了控制权。基本上它在端口80上看到了一个请求并且顺利,因为我没有更好的选择,我将使用此服务器块。现在,如果您在端口80上添加更多服务器块,那么Nginx将开始使用服务器名称作为确定使用哪个服务器的方法。

您可以添加如下服务器块:

server {
        listen                          80 default_server;
        server_name                     _;
        ...
 }

如果没有其他匹配项,那将成为默认服务器。

希望有所帮助。