nginx設定server的時候 server_name為什麼不行
server {
listen 8000;
server_name kaixuan.test.com;
root /data1/htdocs/kaixuan.test.com/;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
location / {
index index.html;
}
}
server {
listen 80;
server_name kaixuan.hehe.com;
root /data1/htdocs/kaixuan.hehe.com/;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
location / {
index index.html;
}
}
上面是我的程式碼,我設定了兩個server,server_name 和連接埠是不一樣的
但是我造訪 kaixuan.hehe.com:8000 竟然也進入了kaixuan.test.com。 【注意連接埠】
同樣,我造訪 kaixuan.test.com 也能進入kaixuan.hehe.com,這正常嗎?
如果這樣正常的話,那我們在線上怎麼解決?加一個預設的讓他預設進去嗎?
對的,加上一條預設的阻擋。
當所有server的規則都不符時,nginx會採用第一條server配置,所以一般第一條server會使用阻止頁面。