您的位置:首页 > 运维架构 > Nginx

nginx禁止域名被恶意cname

2015-06-03 13:42 483 查看

前提

目前我们在做一个机遇docker、JFinal的SaaS平台,暂时测试阶段!

今日,系统在做域名绑定的时候发现:未绑定过的域名cname到我们得三级域名上,会绑定到某个系统上!

基于名称的虚拟服务器

nginx
请求匹配的时候是根据
request
的投信息
host
来判定哪个server处理请求!

如果没有匹配到
server_name
,或者配置文件中不存在该server_name,

那么nginx将会将这个请求转发给一个默认的server,如果你不想让它默认的,那么可以在listen指令中添加
default_server
参数指明

如下:

server {
listen       80  default_server;
server_name  nginx.net  www.nginx.net;
...
}

注:0.8.21之后的nginx版本才支持
default_server
参数

怎么阻止没有指定服务器名字的请求?

如果你不想处理没有指定
Host
的请求,你只需要添加一个空的server_name即可

如下:

server {
listen       80;
server_name  "";
return       444;
}

处理

下面是我的临时处理,返回一个页面会更加适合

server {
listen       80 default_server;
server_name  "";
return       200 "{code:1, message:'domain config error!'}";
add_header   Content-Type text/plain;
}

参考:

nginx request processing

reply-with-200-from-nginx-config-without-serving-a-file
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx