Azure应用网关配置默认后端返回404的方案咨询(无需创建虚拟资源)
嗨,我完全懂你的困扰——Azure应用网关确实硬性要求路径映射必须设置默认后端,但谁也不想为了个“占位符”特意去创建空存储账户或者其他没用的资源对吧?毕竟之前用K8s Ingress的时候,不匹配的请求直接返回404就完事了,换到Azure原生资源反而多了这道坎。
给你分享一个不用额外创建真实资源的解决方案,核心思路是用一个“无效后端池”结合自定义错误响应来实现:
第一步:创建一个无效的后端池
新建一个后端池(比如命名为Dummy-404-Backend),里面随便填一个不存在的目标——比如本地回环IP127.0.0.1,或者一个根本不存在的域名(比如invalid.yourdomain.com)。这个目标不需要真的存在,我们要的就是它永远无法被访问到。第二步:配置健康探测
新建一个健康探测(比如Dummy-Probe),协议选HTTP/HTTPS,端口随便填(比如80),路径设为/就行。因为后端池的目标是无效的,这个探测肯定会持续失败,后端池会被标记为“不健康”。第三步:设置后端规则和自定义错误
新建一个后端设置(比如404-Backend-Settings),关联刚才的后端池和健康探测。然后在「自定义错误页面」部分,添加错误代码404,选择“使用默认响应”就行(如果需要自定义404页面也可以上传)。第四步:把它设为默认后端
回到你的URL路径映射配置,把默认后端设置成这个刚创建的404-Backend-Settings对应的后端池。
这样一来,所有没匹配到你预设路径规则的请求,都会被路由到这个无效后端池。应用网关发现后端不健康后,就会返回你配置的404错误,完美达到你要的效果,而且完全不需要额外的付费资源。
备注:内容来源于stack exchange,提问作者Jan Hudec

