nginx禁止域名被恶意cname
时间:2015-10-06 22:49 来源:linux.it.net.cn 作者:IT
前提
目前我们在做一个机遇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
(责任编辑:IT)
前提目前我们在做一个机遇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 (责任编辑:IT) |