Nginx下防止陌生域名解析到自己网站以及禁止IP访问网站的方法
前言
自己的这个网站,也就是www.huxinmin.com,突然有一天再百度统计上面看流量来源的时候,发现了有一个陌生的奇怪域名https://wxcs.zybdh.com/
竟然出现在了TOP10入口页面,以及还有通过IP地址直接访问的情况。如图:
这让我大吃一惊,还以为自己网站被黑了呢,后来通过查资料得知,这是别人恶意将域名解析到了我的网站上,听说是这样可以增加搜索引擎对他的域名的收录,但是对于这样的情况,而且未备案的域名解析到自己的服务器IP会导致服务器被断网,我当然是拒绝的,于是通过各种查资料,找到了方法:
Nginx配置方法
找到nginx.conf或者nginx.conf里面include的包含着的你自己的网站配置文件,添加一个server配置,第一种,简单的返回500:
server {
listen 80 default_server;
server_name _;
return 500;
}
也可以把这些流量收集起来,导入到自己的网站:
server {
listen 80 default_server;
server_name _;
return 301 http://www.huxinmin.com;
#或者使用 rewrite写法为 rewrite ^(.*) http://www.huxinmin.com permanent;
#都表示永久重定向
}
此时,访问wxcs.zybdh.com或者通过IP访问的话,则成功重定向到www.huxinmin.com
深入配置
对于上面的配置方法,对于http是起作用了,但是对于https还不起作用,如果使用https://wxcs.zybdh.com
进行访问,或者使用https://ip
进行访问的话,则无法成功进行重定向,对此,还需要进行更深入的配置,在刚才配置的server语句中加入:
server
{
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
ssl_certificate path_to_your_fullchain.cer;
ssl_certificate_key paht_to_your_key;
return 301 http://www.huxinmin.com;
}
注意:一定要加入证书,否则不起作用
至此,通过测试,无论是http或者是https的陌生域名和IP访问都被正确的重定向到了自己的网站。