nginx設定server的時候server_name不起作用?
我想大声告诉你
我想大声告诉你 2017-05-16 17:15:16
0
1
1105

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,這正常嗎?
如果這樣正常的話,那我們在線上怎麼解決?加一個預設的讓他預設進去嗎?

我想大声告诉你
我想大声告诉你

全部回覆(1)
小葫芦

對的,加上一條預設的阻擋。

當所有server的規則都不符時,nginx會採用第一條server配置,所以一般第一條server會使用阻止頁面。

server {
   listen 80;
   server_name _;
   
   return 404;
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!