nginx避免不相关域名访问

问题:我的一个网站(假设域名为 www.jd.com),正常在工信部备案了,这时有人注册了一个域名(假设域名为 假的.com),这个人把“假的.com“指向了我的服务器IP,那么使用”假的.com“就可以访问我的网站了。

后果:工信部会来找你,说”假的.com“没有备案,限时(1小时)内处置完成,否则从运营商处直接关停你的IP。

其他后果:可以将对手的SEO排名拉低(引用自:https://juejin.cn/post/6844903887242018830)

解决办法:

修改nignx配置,限定网站的访问域名,错误域名返回444状态码。

在nginx.conf配置里:

server {
listen 80;
server_name _;
return 444;
}

server {
listen 443 ssl;
server_name _;
ssl_certificate 证书.pem;
ssl_certificate_key 证书.key;
return 444;
}

server {
listen 80;
server_name www.jd.com;
后面正常配置;
}

server {
listen 443 ssl;
server_name www.jd.com;
ssl_certificate 证书.pem;
ssl_certificate_key 证书.key;
后面正常配置;
}

这里 server_name 指定你的正确域名。
server_name _; 就是通配其他域名。
当是正确域名的时候,就使用正常配置,当是其他域名时,就返回444状态码。
这个444状态码是什么数据都不返回。