nginx禁止一切空头主机及IP直接访问
空头主机,说白了就是没有绑定在你服务器上的域名,可能会有恶意解析,所以最好禁掉,在这里大概说一下吧,Nginx
的虚拟主机是通过HTTP
请求中的Host
值来找到对应的虚拟主机配置,如果没找到,那Nginx
就会将请求送到default_server
的节点来处理,如果没有指定default_server
,就会找配置文件里所配置的第一个虚拟主机,我现在的情况是直接访问我源站IP
或是随便写个hosts
指到我的源站都会跳到本域名,现在给他改一下,直接返回502。
server {
listen 80 default_server;
server_name _;
return 502;
}
server {
listen 443 default_server;
server_name _;
ssl_certificate /usr/local/nginx/certs/lingchu.me.crt;
ssl_certificate_key /usr/local/nginx/certs/lingchu.me.key;
include /usr/local/nginx/vhost/extend/ssl;
return 502;
}
443
端口需要一个证书,随便搞一个就行了,这样配置之后所有空头主机都会返回502,也可以用rewrite
,大概就这样。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。