Nginx防止域名被恶意解析(http和https)

如果域名被他人恶意解析会导致搜索引擎收录错误的网址,如下图,我的博客被他人恶意解析,导致百度收录的错

如果域名被他人恶意解析会导致搜索引擎收录错误的网址,如下图,我的博客被他人恶意解析,导致百度收录的错误的网址。

在Nginx中如何防止这种情况呢?
下面的配置代码放到http段中可以阻止未匹配的域名访问你的页面

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80 default_server;
server_name _;
return 301 https://blog.51php.org;#替换成你自己的网址
}

server {
listen 443 ssl default_server;
server_name _;
ssl_certificate server.crt;#替换成你自己的证书
ssl_certificate_key server.key;#替换成你自己的证书
return 301 https://blog.51php.org;#替换成你自己的网址
}

这段配置代码原理是nginx如果检测到请求的域名不匹配任何一个serve_name则会自动匹配这个default_server,这时在这两个default_server中配置你想做的事就行了。可以跳转到你的真实网址,可以直接return一个http状态码,比如444,403等等,这样其他非法域名要不不能访问,要不直接跳转到你的真实网址了。(这段代码记得把ssl证书和跳转的域名替换成你自己的)