【问题】4.Nginx之default-创新互联
目录
员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供做网站、网站建设、微信公众号开发、电商网站开发,小程序开发,软件定制网站等一站式互联网企业服务。序言
1.基本介绍
2.显示定义一个 default server
3.指定server_name 为 ip
4. 隐式的 default server
Tips:
5.风险问题
问题描述:
原因:
解决方案:
6.总结
序言
1.基本介绍文章标记颜色说明:
- 黄色:重要标题
- 红色:用来标记结论
- 绿色:用来标记一级论点
- 蓝色:用来标记二级论点
2.显示定义一个 default servernginx 的 default_server 指令
可以定义默认的 server 出处理一些没有成功匹配 server_name 的请求
- 1.显示定义
- 2.指定Server_name
- 3.隐式定义
这三种方式都可禁止 ip 直接访问
且 1,3同时可以禁止未绑定域名的访问(比如泛解析了主域名)。
如果没有显式定义,则会选取第一个定义的 server 作为 default_server。
http {
# 显示的定义一个 default server
server {
listen 80 default_server;
server_name _;
return 403; # 403 forbidden
}
}
3.指定server_name 为 iphttp {
# 直接指定 ip server_name
server {
listen 80;
server_name 192.168.xxx.xxx;
return 403; # 403 forbidden
}
}
4. 隐式的 default server在没有显式定义 default server 时,nginx 会将配置的第一个 server 作为 default server,即当请求没有匹配任何 server_name 时,此 server 会处理此请求。
所以,当直接使用 ip 访问时会进入第一个 server 处理,返回403 forbidden。
http {
# 如果没有显式声明 default server 则第一个 server 会被隐式的设为 default server
server {
listen 80;
server_name _; # _ 并不是重点 __ 也可以 ___也可以
return 403; # 403 forbidden
}
}
Tips: 这里,server_name 设为 '_',其实也可以设置为其他。
'_' 只是作为一个和业务域名无关的请求回收服务,不要认为一定要设置为 '_',就好
5.风险问题 问题描述:如果线上的业务都是明确的业务域名访问,那泛解析造成的一些非业务域名或ip访问都会被这个 sever 回收处理。
原因:nginx 不配置 default_server ,会出现一些很诡异问题
有时候,代理机器没有配置流,居然可以访问正常,有时候,配置明明删除了,却也能访问
解决方案:没有配置default_server
6.总结
- 在代理机做分发的时候一定要反复确认是否有映射过去
- 设置一个 default_server
nginx 批量载入配置 conf 时会按 ASCII (American Standard Code for Information Interchange)排序载入,
这就会以
- server_a.conf
- server_b.conf
- server_c.conf
的顺序载入,如果没有生命 default_server 的话,那 server_a 会作为默认的 server 去处理 未绑定域名/ip 的请求。
建议显示指定 default server,因为在配置虚拟主机或多业务时,会存有多个 server 配置文件
如果使用隐式方式选取第一个被载入的 server 作为 default server 的话,还要时刻去确认谁是被第一个载入的...存在一定的风险...
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享名称:【问题】4.Nginx之default-创新互联
本文网址:http://scyanting.com/article/djpoeo.html