当前位置: > Linux服务器 > nginx >

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)
------分隔线----------------------------
栏目列表
推荐内容