nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > nginx阻止对未绑定域名的访问

nginx阻止对未绑定域名的访问方式

作者:Bpazy

本描述重点讲解了Nginx配置中如何阻止未绑定特定域名的访问,通过设置默认server块和明确指定server名称,确保只有合法请求能够匹配成功,从而避免非法访问的问题

nginx阻止对未绑定域名的访问

当请求走进 nginx 时,会依次匹配每一个 server 和 location 块。

当某个请求访问了未绑定的 server_name,由于每个 server 和 location 都访问不上,就会默认选择第一个,

下面举例说明:

nginx配置文件节选

server {
	location {
		server_name a.example.com;
		index index.html;
	}
	location {
		server_name b.example.com;
		index index.html;
	}
}

当请求访问的地址是 c.example.com 的时候会发生什么?

答案是请求匹配到了 a.example.com。

为了阻止这种情况的发生

可以配置一个默认的 server 块用于阻止非法请求:

server {
	listen 80;
	listen 443;
	return 444;
}
server {
	location {
		server_name a.example.com;
		index index.html;
	}
	location {
		server_name b.example.com;
		index index.html;
	}
}

另外,你还可以通过先显式指定 default_server 的方式:

server {
	listen 80 default_server;
	listen 443 default_server;
	return 444;
}

这样你就不必依赖 server 块配置的顺序了,推荐

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文