天天看点

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页面。

作者:仓储大叔,张占岭,

荣誉:微软MVP

QQ:853066980

支付宝扫一扫,为大叔打赏!

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