我有一个正在运行的 nginx 服务器,其中有多个启用了 sites 的项目。问题在于,当尝试访问不存在的项目 URL 时,nginx 将呈现第一个可用的项目。
例如,我有一台 IP 为 111.222.333.444 的服务器,其中有以下项目的 NGINX:
- 测试网
- bbb.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;
}
}
答案1
您需要创建一个单独的默认虚拟主机来执行您想要的任何操作:
server {
listen 80 default_server;
return 404;
}