nginx阻止对未绑定域名的访问方式
更新时间:2026年05月27日 15:40:19 作者: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 块配置的顺序了,推荐。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Nginx0.5.33+PHP5.2.5(FastCGI)搭建胜过Apache10倍的Web服务器
Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器的第2版,经过了多台服务器的测试。2009-10-10


最新评论