【问题】4.Nginx之default_server问题
创始人
2024-04-24 15:17:29
0

目录

序言

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 serverserver {listen 80 default_server;server_name _;return 403; # 403 forbidden}}

3.指定server_name 为 ip

http {# 直接指定 ip server_nameserver {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 serverserver {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 的话,还要时刻去确认谁是被第一个载入的...存在一定的风险...

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...