文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【问题】4.Nginx之default_server问题

2023-08-31 09:13

关注

目录

序言

1.基本介绍 

2.显示定义一个 default server 

3.指定server_name 为 ip

4. 隐式的 default server

Tips: 

5.风险问题

问题描述:

原因:

解决方案:

6.总结


序言

文章标记颜色说明:

  • 黄色:重要标题
  • 红色:用来标记结论
  • 绿色:用来标记一级论点
  • 蓝色:用来标记二级论点

1.基本介绍 

nginx 的 default_server 指令

可以定义默认的 server 出处理一些没有成功匹配 server_name 的请求

  • 1.显示定义
  • 2.指定Server_name
  • 3.隐式定义

这三种方式都可禁止 ip 直接访问

且 1,3同时可以禁止未绑定域名的访问(比如泛解析了主域名)。

如果没有显式定义,则会选取第一个定义的 server 作为 default_server。

2.显示定义一个 default server 

http {        # 显示的定义一个 default server    server {        listen 80 default_server;        server_name _;        return 403; # 403 forbidden    }    }

3.指定server_name 为 ip

http {    # 直接指定 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 设为 '_',其实也可以设置为其他。

'_' 只是作为一个和业务域名无关的请求回收服务,不要认为一定要设置为 '_',就好

如果线上的业务都是明确的业务域名访问,那泛解析造成的一些非业务域名或ip访问都会被这个 sever 回收处理。

5.风险问题

问题描述:

nginx 不配置 default_server ,会出现一些很诡异问题

有时候,代理机器没有配置流,居然可以访问正常,有时候,配置明明删除了,却也能访问

原因:

没有配置default_server

解决方案:

  1. 在代理机做分发的时候一定要反复确认是否有映射过去
  2. 设置一个 default_server

6.总结

nginx 批量载入配置 conf 时会按 ASCII (American Standard Code for Information Interchange)排序载入,

这就会以

  1. server_a.conf
  2. server_b.conf
  3. server_c.conf

的顺序载入,如果没有生命 default_server 的话,那 server_a 会作为默认的 server 去处理 未绑定域名/ip 的请求

建议显示指定 default server,因为在配置虚拟主机或多业务时,会存有多个 server 配置文件

如果使用隐式方式选取第一个被载入的 server 作为 default server 的话,还要时刻去确认谁是被第一个载入的...存在一定的风险...

来源地址:https://blog.csdn.net/weixin_36755535/article/details/128342546

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯