NGINX解析一个未配置的域,为什么?

时间:2018-06-01 00:34:11

标签: nginx server nginx-location nginx-reverse-proxy winginx

我有一台服务器正在运行:http://localhost:8080

我正在配置示例NGINX服务器。

我从互联网上复制了以下配置:

# user  nobody;
worker_processes  1;

error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile            on;
    keepalive_timeout   65;
    # gzip              on;

    server
    {
        listen 80;
        server_name mydomain01.com www.mydomain01.com;

        location /
        {
            proxy_pass http://localhost:8080;
            include "../proxy_params.conf";
        }
    }

}

在hosts文件中,我只有以下条目:

127.0.0.1 mydomain01.com
127.0.0.1 www.mydomain01.com;
127.0.0.1 mydomain02.com
127.0.0.1 www.mydomain02.com;

当我转到:http://mydomain01.com时,我会收到与以下内容相同的内容:http://localhost:8080

我的问题是:

为什么我去的时候:http://mydomain02.com我也会收到与http://localhost:8080相同的内容?

我认为我不应该获取该内容,因为最后一个域不在NGINX配置上。

上面的配置是否有错误?

谢谢!

1 个答案:

答案 0 :(得分:0)

nginx 始终包含默认服务器,它将处理与server_name指令不匹配的服务器名称的请求。如果您未定义default_servernginx将使用匹配server的第一个location块。有关详细信息,请参阅this document