Nginx-输入不存在的服务器名称时打开第一个项目

Nginx-输入不存在的服务器名称时打开第一个项目

我有一个正在运行的 nginx 服务器,其中有多个启用了 sites 的项目。问题在于,当尝试访问不存在的项目 URL 时,nginx 将呈现第一个可用的项目。

例如,我有一台 IP 为 111.222.333.444 的服务器,其中有以下项目的 NGINX:

  1. 测试网
  2. bbb.test.com
  3. 测试网

我现在正在创建一个新的域名 ddd.test.com 并指向 111.222.333.444 当尝试访问 ddd.test.com 时,我的浏览器将打开 aaa.test.com

知道为什么吗?

在我的 nginx 项目配置中,我有 aaa.test.com

 server {
    listen                  80;
    server_name             aaa.test.com;
    access_log              /usr/local/nginx/logs/aaa.access.log;
    error_log               /usr/local/nginx/logs/aaa.error.log;
    root                    /var/www/aaa/web;


    client_max_body_size    60M;

    location / {
            index app.php;
            if (-f $request_filename) {
            break;
            }
            rewrite ^(.*)$ /app.php last;
    }


    ## Parse all .php file in the /var/www directory
    location ~ \.php$ {
            fastcgi_split_path_info         ^(.+\.php)(.*)$;
            fastcgi_pass                   127.0.0.1:9001;
            fastcgi_index                   index.php;
            fastcgi_param                   SCRIPT_FILENAME  $request_filename;
            include                         fastcgi_params;
    }
}

答案1

您需要创建一个单独的默认虚拟主机来执行您想要的任何操作:

server {
    listen 80 default_server;

    return 404;
}

相关内容