Linux
Nginx - 輸入不存在的伺服器名稱時打開第一個項目
我有一個正在執行的 nginx 伺服器,它在啟用站點的內部有多個項目。當嘗試訪問不存在的項目 url 時出現問題,nginx 將呈現第一個可用的。
例如,我有一個 IP 為 111.222.333.444 的伺服器和帶有這些項目的 NGINX:
- aaa.test.com
- bbb.test.com
- 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; }