nginx 怎么避免options请求(详解nginx 的 default_server 定义及匹配规则)
nginx 怎么避免options请求
详解nginx 的 default_server 定义及匹配规则nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求,如果没有显式定义,则会选取第一个定义的 server 作为 default_server。
在了解到如上规则后,我们可以捕获未做绑定的域名访问或直接IP访问,做重定向到403页面等处理。
1、nginx 隐式的 default server
http { # 如果没有显式声明 default server 则第一个 server 会被隐式的设为 default server server { listen 80; server_name _; # _ 并不是重点 __ 也可以 ___也可以 return 403; # 403 forbidden } server { listen 80; server_name www.a.com; ... } server { listen 80; server_name www.b.com; ... } }
很多人复制粘贴广泛传播 server_name 要设为 '_',其实一毛钱的关系也没有。'_' 只是作为一个和业务域名无关的请求回收服务而已,如果我们线上的业务都是明确的业务域名访问,那泛解析造成的一些非业务域名或ip访问都会被这个 sever 回收处理。
在没有显式定义 default server 时,nginx 会将配置的第一个 server 作为 default server,即当请求没有匹配任何 server_name 时,此 server 会处理此请求。所以,当我们直接使用 ip 访问时会被交给此处定义的第一个 server 处理,403 forbidden。
2、显示的定义一个 default server
http { server { listen 80; server_name www.a.com; ... } server { listen 80; server_name www.b.com; ... } # 显示的定义一个 default server server { listen 80 default_server; server_name _; return 403; # 403 forbidden } }
建议显示指定 default server,因为我们在配置虚拟主机或多业务时,会存有多个 server 配置文件,如果使用隐式方式选取第一个被载入的 server 作为 default server 的话,我们还要时刻去确认谁是被第一个载入的...制造风险...
3、直接指定server_name 为 ip(只能禁止ip访问)
http { server { listen 80; server_name www.a.com; ... } server { listen 80; server_name www.b.com; ... } # 直接指定 ip server_name server { listen 80; server_name xxx.xxx.xxx.xxx; return 403; # 403 forbidden } }
以上三种方式都可禁止 ip 直接访问,且 1,2 同时可以禁止未绑定域名的访问(比如你泛解析了主域名)。
小记:nginx 批量载入配置 conf 时会按 ascii 排序载入,这就会以 server_a.conf server_b.conf server_c.conf 的顺序载入,如果没有生命 default_server 的话,那 server_a 会作为默认的 server 去处理 未绑定域名/ip 的请求。
到此这篇关于详解nginx 的 default_server 定义及匹配规则的文章就介绍到这了,更多相关nginx default_server 匹配规则内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- nginx报错处理(Nginx报504 gateway timeout错误的解决方法)
- 怎么查看nginx支持rewrite(nginx里的rewrite跳转的实现)
- nginx事件模型有几种(Python实现监控Nginx配置文件的不同并发送邮件报警功能示例)
- nginxlocation和alias的区别(nginx搭建图片服务器的过程详解root和alias的区别)
- fastdfs服务器集群(fastdfs+nginx集群搭建的实现)
- nginx流媒体服务搭建与应用(用nginx+FastDFS一步步搭建文件管理系统)
- nginx负载均衡与动静分离(Nginx配置之实现多台服务器负载均衡)
- php nginx 底层执行流程(nginx/apache/php隐藏http头部版本信息的实现方法)
- nginx配置静态资源路径(Mac环境Nginx配置和访问本地静态资源的实现)
- nginx怎么配置静态资源(nginx实现发布静态资源的方法)
- nginx代理转发域名(Nginx域名转发使用场景代码实例)
- nginx的15种优化方案(Nginx开启Brotli压缩算法实现过程详解)
- nginx反向代理及原理(传说中的反向代理,Nginx+Apache软件配置Web服务器)
- nginxlocation匹配参数(nginx location优先级的深入讲解)
- nginx+ssl配置详解(nginx配置ssl实现https的方法示例)
- nginx 反向代理的参数(Nginx反向代理及负载均衡如何实现基于linux)
- 东南亚安全吗(好不好挣钱)
- 潘长江小品《照亮全家福》台词剧本完整版(潘长江小品照亮全家福台词剧本完整版)
- 一窗通办政务服务小品剧本(一窗通办政务服务小品剧本)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
热门推荐
- 使用npoi将数据导出到一个EXCEL的多SHEET
- css定位布局讲解(css position定位属性_动力节点Java学院整理)
- 属于web服务器的有哪些(web服务器有几种类型?)
- layui导航栏(使用layui实现左侧菜单栏及动态操作tab项的方法)
- Service Unavailable解决方法
- idea如何搭建tomcat(IDEA2020.1.2创建web项目配置Tomcat的详细教程)
- 织梦系统的seo教程(织梦后台SEO优化和修改关键字的方法)
- pythondatetime库详解(python使用time、datetime返回工作日列表实例代码)
- python查找含特定字符的字符串(Python实现查找字符串数组最长公共前缀示例)
- 网页颜色的选择
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9