nginx配置server的时候server_name不起作用?
我想大声告诉你
我想大声告诉你 2017-05-16 17:15:16
0
1
1166

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;
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板