业余时间写了一个工具集合网站,经过漫长的等待,昨天终于收到工信部通过域名备案的邮件,晚上就将域名解析到阿里云服务器上了。今天打开百度统计想看看统计功能是否正常,结果发现了一个陌生的域名(见下图)。
恶意解析的域名
好奇之下,我点击了这个域名发现,竟然打开了我的网站。那一刻我震惊,我实在想不出什么人会这么无聊,把域名解析到我的服务器上。于是在网上搜了一下"域名恶意解析"这个关键词,不搜不知道,一搜吓一跳,借用网友的话说:域名的恶意解析,可以用于借刀杀人。这个手法很骚,轻则可以将对手的SEO排名拉低,重则可以让工信部封杀其站点。
危害如下:
- 不同域名解析到同个站点,真身域名权重被降低,SEO排名被假域名挤占
- 非法域名解析,导致源服务器被工信部封杀,网站停止服务
琢磨了一下,应该只有同行会做这么费力不讨好的事情吧,不过我的站点还在开发当中,也没有任何用户呢,他们是怎么下得去手的呢。废话到此为止,下面上干货。
解决方案
服务系统是Ubuntu 22.04.4
,技术方案是Nginx + PM2
搭建的SSR渲染框架,因此只需要改一下Nginx
的配置即可。详细的步骤如下:
Step1. 复制default配置到[your_domain]
cd /etc/nginx/sites-available/
cp default your_domain
Step2. 修改default配置文件禁用默认server_name
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 444;
}
server {
listen 443 default_server;
listen [::]:443 default_server;
server_name _;
return 444;
}
Tips: 444
是Nginx服务器扩展的HTTP错误状态码,为非标准HTTP状态码,用于指示 Nginx 关闭连接而不向客户端发送响应,最常用于拒绝恶意或格式错误的请求。
Step3 修改[your_domain]
配置文件
server {
listen 80;
listen [::]:80;
index index.html index.htm index.nginx-debian.html;
server_name your_domain *.your_domain;
location / {
proxy_pass http://127.0.0.1:3000;
index index.html index.htm;
}
}
注意事项有2点:
- listen 80; 后面不能有default_server,否则会报错
- server_name 后面要需要跟 your_domain 和 *.your_domain 两个域名,否则一级域名或二级域名无法访问。
Step4 创建[your_domain]
软连接到sites-enabled
文件夹:
ln -s /etc/nginx/sites-availabl/your_domain /etc/nginx/sites-enabled/your_domain
Tips:ln -s
后面的文件要求是绝对路径,否则创建出来的软连接是红色
的。
Step5 检查和Reload配置文件:
使用以下命令检查配置文件是否有效:
sudo nginx -t
配置文件检查通过后,使用以下命令重新加载更改的配置文件:
sudo systemctl reload nginx