web服务器如果没有设置空主机名的,就造成在浏览器中直接输入IP地址,而不是输入绑定的域名就能直接访问服务器的问题,很容易受到域名恶意解析的攻击。
若未备案的域名,绑定到了我们的服务器ip,而监管机构找不到恶意绑定者,将会封锁服务器ip,造成我们的网站不可用。
设置空主机名的规则,能够禁止IP直接访问,防止域名恶意解析,保护自己的web服务。
Nginx设置
在nginx的配置中加入空主机设置,示例如下:
设置之后重启nginx,然后可以在浏览器中进行测试,如果输入IP地址无法访问服务,而输入域名可以访问,就表示配置正确。
参考文章:
谈nginx配置文件,设置空主机头 – markdream
https://bbs.vpser.net/thread-1794-1-1.html
配置nginx 443的问题
由于配置了空主机名,nginx出现了以下问题no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 121.69.56.190, server: 0.0.0.0:443
,
解决方法:将server下面的https配置移到http下面
问题原因:
之前只有一个443的server,所以https配置在了server中。现加了一个servername为的https的server ,该server无法找到https的配置,导致nginx报错。