Linux

Nginx - 輸入不存在的伺服器名稱時打開第一個項目

  • January 30, 2015

我有一個正在執行的 nginx 伺服器,它在啟用站點的內部有多個項目。當嘗試訪問不存在的項目 url 時出現問題,nginx 將呈現第一個可用的。

例如,我有一個 IP 為 111.222.333.444 的伺服器和帶有這些項目的 NGINX:

  1. aaa.test.com
  2. bbb.test.com
  3. ccc.test.com

我現在正在創建一個新域 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;
   }
}

您需要創建一個單獨的預設虛擬主機來執行您想要的任何操作:

server {
   listen 80 default_server;

   return 404;
}

引用自:https://serverfault.com/questions/663707