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和php怎么结合(php和nginx交互实例讲解)
- nginx反向代理流程详解(本地通过nginx配置反向代理的全过程记录)
- linux nginx搭建(Ubuntu使用nginx搭建webdav文件服务器的详细过程)
- nginx 重置端口号(详解如何修改nginx的默认端口)
- nginx配置404状态码(解决Nginx 配置 proxy_pass 后 返回404问题)
- 宝塔web服务器如何安装(宝塔面板开启Nginx/Apache防火墙四层防御的方法)
- linuxnginx常用状态命令(nginx常用命令放入shell脚本详解)
- nginx服务器和apache服务器(Nginx vs Apache两大web服务器比较)
- nginx查看rewrite日志(Nginx Rewrite使用场景及配置方法解析)
- nginx-rtmp-module 配置(Nginx搭建rtmp直播服务器实现代码)
- nginx过滤器漏洞(Nginx反爬虫策略,防止UA抓取网站)
- 宝塔试用网站再安装nginx不起作用(宝塔面板Nginx防恶意解析图文教程)
- nginxlocation和alias的区别(nginx搭建图片服务器的过程详解root和alias的区别)
- nginx代理docker容器(Docker Nginx容器制作部署实现方法)
- nginx 根据url限流(浅谈Nginx 中的两种限流方式)
- nginx做转发配置weight啥意思(Nginx中break与last的区别详析)
- 体坛传媒LOGO全新升级,多元发展迈出坚实步伐(体坛传媒LOGO全新升级)
- 超撩人治愈的绝美水彩,原来出自她之手 一笔一画令无数人沉醉(超撩人治愈的绝美水彩)
- 新手的勾线(新手的勾线)
- ()
- 书法欣赏 宋.志南诗《绝句》(宋.志南诗绝句)
- 每周一首古诗 《绝句》(每周一首古诗绝句)
热门推荐
- sqlserver管理工具远程连接(MSSQLSERVER不同版本设置开启远程连接sa配置)
- cssgrid普及情况(5分钟教你学会 CSS Grid 布局)
- 什么是ftp和sftp(浅谈 FTP、FTPS 与 SFTP的区别)
- nginx配置静态资源访问(nginx 多个location转发任意请求或访问静态资源文件的实现)
- mongodb可视化工具
- mysql分库分表视图(MySQL分库分表与分区的入门指南)
- 使用python制作游戏(python制作填词游戏步骤详解)
- sql对象资源管理在哪(SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用)
- vuejs filter过滤器的使用(Vue过滤器filter实现及应用场景详解)
- Resharper的使用
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9