nginx~对没有定义service_name的三级域名进行过滤

在nginx配置过程中,你可能遇到过三级域名(泛域名)的问题,当你没有定义它时,它会使用顶级域名的路由,你可以在配置中进行过滤.

server {
            listen       80;
            server_name  lind.company.cn *.lind.company.cn;

        #匹配没有定义过servicename的三级域名,让它去404
        if ($host ~* ^(.+)\.([^\.]+)\.([^\.]+)\.([^\.]+)$)
        {
           return 404;
        }

        location / {
            root   /home/web;
            index  index.html;
}
server {
            listen       80;
            server_name  abc.lind.company.cn;
}

经过上面的配置之后,当你输入abc.lind.company.cn它可以正常解析,而当你输入xyz.lind.company.cn时,它将返回到404页面。

posted @ 2020-04-15 13:17  张占岭  阅读(1283)  评论(0编辑  收藏  举报