【问题标题】:Accessing Wordpress behind an Azure application Gateway在 Azure 应用程序网关后面访问 Wordpress
【发布时间】:2018-11-12 17:32:13
【问题描述】:

我有一个托管在 Azure Web 应用程序中的 Wordpress 站点。当通过网络应用程序直接访问时,它工作正常。但是当我把它放在 Azure 应用程序网关后面时,我收到“Too_Many_Redirects”错误。

我在应用程序网关后面有另一个网站,它不是 Wordpress,这不会发生。

有人经历过吗? 是否有任何特定的设置或解决方法可以使这项工作?

编辑 1----

应用程序网关配置:

  • 健康探测

    • HTTP 设置

    • 监听器

    • 后端池

    • 规则

Web 应用端点采用 HTTPS。

编辑 2----

  • 后端运行状况

今天我做了很多测试并找到了一种方法来完成这项工作,但并没有解决问题,而是创建了另一个问题。在 'SiteURL' 和 'Home' 设置的 Wordpress 中,我使用了 Azure Web App 提供的默认地址,而不是使用所需的地址,即自定义地址。这样做,TOO_MANY_REDIRECTS 错误消失了,但是我的网站的链接更改为 *.azurewebsites.net,这是一个大问题。

我尝试了使用 HTTPS 和 HTTP 的“家庭”地址。没有成功。

我刚刚发现即使没有 SSL,也会出现问题。仅适用于“azurewebsites”地址,这会破坏我的链接。

【问题讨论】:

  • 您能分享一下您在应用程序网关上的规则配置吗?什么是 Web App 端点(HTTP 或 HTTPS)?
  • @IvanIgnatiev-MSFT 我用应用程序网关设置和 Web 应用端点类型更新了我的问题。

标签: wordpress azure


【解决方案1】:

您可以通过放置关闭 Wordpress 的重定向

remove_action('template_redirect', 'redirect_canonical');

在 wp_config.php 文件的末尾。对于 Ubuntu 18.04 上的我来说,它位于 /var/www/wordpress 中。

我遇到了类似的问题。请记住,我对开发非常陌生。我必须使用 wordpress 在 Azure 中预配一个 Ubuntu 18.04 虚拟机 (VM)。我需要使用 App Gateway 来路由来自机器的流量。我正在使用 Azure App Gateway v2。我的自定义域名指向应用网关的公共 IP。在 Ubuntu VM 中,我安装了 Apache,并在 apache 配置文件中放置了 DocumentRoot /var/www/wordpress 以及用于 https 连接的所有其他设置。但是,通过此设置,Wordpress 将我重定向到私有 IP,因此用户开始将其 url 从 www.XXXXX.com 转到 10.X.X.X。然后我尝试将 wordpress 中的主机名切换为 www.XXXXXX.com,但这使得网站完全没有响应。最后,我使用该行禁用了 Wordpress 的重定向,现在它可以正常工作了。我可能设计不正确,所以请先考虑其他解决方案。
编辑:一些错别字

【讨论】:

    【解决方案2】:
    1. 确保您没有从应用程序网关设置任何类型的额外重定向。

    2. 你可以跟踪 fiddler 看看是谁在扔 301。

    3. 确保您在 WebApp 上关闭了重定向和身份验证

    4. 您可能在 Wordpress 网站上设置了重定向,只需查看一下即可。

    我很确定它是 WebApp 而不是应用程序网关。

    【讨论】:

    • 在没有 SSL 的新 Wordpress 网站上,它可以完美运行。但是在具有 SSL 证书 (HTTPS) 的 Wordpress 站点上,没有。我在不同的订阅中尝试了另一个,但无济于事。我需要创建一个环境来花时间做一些测试。下周我可能会这样做。但同样,只有当我将网站放在应用程序网关后面时才会出现问题。
    • 我认为您看到的是 50X HTTP 响应代码。检查后端运行状况,如果您看到证书的任何错误 WRT,请告诉我。 SNI 的问题有时可能无法提供所请求的证书。
    • 请分享一些屏幕截图,我一定会在这方面为您提供帮助。 :)
    • 不,我没有看到 50X HTTP 响应代码,只有 Chrome 浏览器上的 ERR_TOO_MANY_REDIRECTS。后端运行状况是健康的。我将分享我刚刚进行的测试(更新后)。
    • 我认为我解决了这个问题。我只需要更改指向应用程序网关的 DNS 条目即可获得确认。我今晚会这样做,然后回到这里发布我找到的解决方案。
    【解决方案3】:

    我终于解决了这个问题!我的初始配置有两个主要问题。

    1. 需要全程使用HTTPS,端到端。所以,我必须在 HTTP 设置配置中使用 HTTPS 协议。在 HTTP 设置中使用 HTTPS 还需要使用 HTTPS 协议的 Health Probe。

    2. 后端池不能指向“应用服务”选项。相反,我使用了“IP 地址或 FQDN”并将网站地址放在名称字段中。当我指向“应用程序服务”选项并选择相应的 Web 应用程序时,它会尝试通过默认地址 (*.azurewebsites.net) 访问 Web 应用程序,这导致 Wordpress 将其重定向到自定义地址,即命中再次应用程序网关等等。

    修改这两个(三)选项后,也需要重新配置规则设置。

    这样做我不需要更改我的 Web 应用程序或 Wordpress 配置中的任何内容。

    【讨论】:

    • 这种方法解决了部分问题。这样做,只有当我使用我的 HOSTS 文件访问网站时才有效。当我将 DNS 服务器上的目标更改为使用应用程序网关时,访问该站点时会触发错误 502。这里有什么帮助吗?
    • 你好@fds13,你解决你的问题了吗?我们在这里遇到了完全相同的问题...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2021-08-14
    • 2020-08-02
    • 1970-01-01
    • 2021-04-23
    • 2021-08-09
    相关资源
    最近更新 更多