宝塔面板 设置Nginx禁止IP直接访问http/https443网站

宝塔服务器管理是现在非常流行的一款免费的 Linux 管理应用,作为不想做过多运维操作的可以使用这个可视化操作。今天这篇文章主要是说一下怎么使用宝塔面板来操作禁止通过 IP 直接访问我们的网站防止被恶意解析,当然独立安装的也是同理。

什么是恶意解析

恶意解析是指有人通过域名 A 记录直接解析自己 IP 地址,从而得到一个在访问者眼中完全相同网站,也会造成搜索引擎收录别人的域名。

原理是什么呢?简单解释就是,你的网站可以通过 IP 直接访问,本来这没什么问题,但是如果被人恶意用别的域名解析到你的 IP 的话,那么你的网站就能通过别人的域名来访问了。

VPS 服务器的 IP 如果被别人恶意绑定,流量就会被劫持到别的域名,从而遭到广告联盟的封杀。因为广告联盟肯定也是跟域名绑定的,被人这么一搞,时间一长肯定会被发现域名不符,于是就 GG 了。

Nginx 防止恶意解析

这里说一下使用宝塔面板在LNMP的环境下禁止通过 IP 直接访问我们的网站从而达到防止恶意解析的操作。

1、绑定一个默认站点,也就是找一个空闲不用的站点,所有未在面板绑定的域名都会访问到这个默认站点。

宝塔面板设置禁止通过IP直接访问网站防止恶意解析

2、添加好默认站点以后,修改站点的配置文件

宝塔面板设置禁止通过IP直接访问网站防止恶意解析

修改站点的配置文件

添加 return 444,可以把 444 改成404或 502 等错误码,为了防止使用https访问,我们 server_name 写服务器 IP 地址,同时监听 443 端口

然后我们使用 IP 访问看一下咯

宝塔面板设置禁止通过IP直接访问网站防止恶意解析

新版宝塔面板在配置443端口,会检测证书的存在,如果没有证书配置,可能会提示证书配置文件出错,可以先把配置好的https网站配置证书的拷过来,确保证书路径正确,然后加到return 502后面:

server
{
    listen 80;
    listen 443;
    server_name 123.57.138.235;
    return 502;
	  index index.html;
    root /www/wwwroot/default;
    
    ssl_certificate    /www/server/panel/vhost/cert/www.wenfeikeji.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/www.wenfeikeji.com/privkey.pem;

这样就可以保存OK

如果你的服务器只有一个https网站,也可以直接在https网站配置中按照下面的:

server {
    listen       443;
    server_name  www.wenfeikeji.com;
if ($host != 'www.wenfeikeji.com' ) {
    rewrite ^/(.*)$ https://www.wenfeikeji.com/$1 permanent;
    break;
    }
}


如果return 502,对SEO不太友好,可以使用301重定向配置,直接跳转到https://www.wenfeikeji.com


微信图片_20200429103703.png