【问题标题】:Multi-site application gateway path-based routing not sending traffic to Apache on VMs多站点应用程序网关基于路径的路由不向 VM 上的 Apache 发送流量
【发布时间】:2020-02-11 15:20:22
【问题描述】:

在 Azure 应用程序网关(标准层)中,我有几个多站点侦听器:

listener-one-http(80 个主机名为 www.staging.example.com) 基本规则将流量发送到以下监听器:

listener-two-https(443 主机名为 www.staging.example.com ) 如果路径包含“mystore”,则此基于路径的规则会将流量发送到 VM-01 或 VM-02。在这两个虚拟机上为不同的站点配置了 Apache。

基于路径的规则是:

Name: www.staging.example.com-https-rule
Listener: listener-two-https
Backend pool: VM-01-Pool
Default HTTP settings: HTTPS-Backend

Name, Paths, Backend pool, HTTP setting
store, /mystore/*, VM-02-Pool, HTTPS-Backend
all, /*, VM-01-Pool, HTTPS-Backend

正在强制执行基本规则(http 到 https),但基于路径的规则集似乎被忽略了。在我的浏览器中,我输入http://www.staging.example.com,这导致https://www.staging.example.com(好)但随后我收到以下消息(坏):

You don't have permission to access / on this server.

有没有办法在不检查虚拟机的情况下跟踪应用程序网关和 Apache 之间发生的事情?

【问题讨论】:

  • 看起来规则是正确的,但由于实例不健康,流量没有发送到后端池,可在 Azure 中的应用程序网关 > 后端运行状况下找到。错误是“无法连接到服务器。检查是否有任何 NSG/UDR/防火墙阻止访问服务器。检查应用程序是否在正确的端口上运行。”如何将其更改为在 Azure 中探测端口 80 而不是 443?
  • 您是否正在尝试端到端 SSL?您的 HTTP 设置配置是什么?您现在使用默认探针配置吗?如果后端不是众所周知的 CA,您可以尝试在需要添加可信根证书的地方创建自定义探测。
  • 是的,SSL 终止按预期工作,但由于运行状况检查失败,流量未发送到后端虚拟机。 “后端运行状况”下的“端口(HTTP 设置)”在哪里定义?
  • 探针与 HTTP 设置相关联。
  • 我想我解决了这个问题。应用程序网关中的一条规则似乎覆盖了我添加的侦听器/规则。该网关或应用程序网关都没有传播更改。我决定通过删除侦听器/规则来测试这一点,但即使没有路由,流量仍然最终在 VM 上。我在存储中应用网关的访问日志中验证了这一点。

标签: azure http-redirect azure-application-gateway


【解决方案1】:

如果添加 /* 规则,它会中断。

Tutorial: Create an application gateway with path-based routing rules using the Azure portal

注意

您不需要添加自定义 /* 路径规则来处理默认情况。这是由默认后端池自动处理的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 2012-02-26
    • 2022-07-28
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多