Apache2.4 Location 块内的 ProxyPass 异常不起作用

Apache2.4 Location 块内的 ProxyPass 异常不起作用

当尝试让 Let's Encrypt Certbot 在托管反向代理内容的本地服务器上工作时,我无法让本地异常在块内工作Locationhttpd.conf片段:

SSLProxyEngine on
<Location "/">
    ProxyPass "https://internal.host/"
    ProxyPassReverse "https://internal.host/"
</Location>
Include /etc/apache2/vhosts.d/01_acme.include

将文件放置在块01_acme.include上方或下方均Location没有效果。

文件01_acme.include

<Location /.well-known/acme-challenge/>
    ProxyPass "!"
    Alias /run/acme/.well-known/acme-challenge
</Location>

我在该目录中放置了一个名为 的文本文件date。尝试检索此文件会导致无限的 301 重定向,date/index.html/index.html/...直到达到客户端的重定向限制。日志显示这是在前端服务器上生成的,后端从未收到请求。

如果我用独立指令替换位置块,它将按预期运行:

Alias /.well-known/acme-challenge /run/acme/.well-known/acme-challenge
ProxyPass /.well-known/acme-challenge !

根据代理通行证文档中这种定义异常的方法应该有效 - 它与该部分末尾提供的示例配置非常吻合。这只是坏了,还是我遗漏了什么?

重定向可能是根本原因,但我在这个范围内找不到任何可能引发 301 的重定向或重写指令,并且在.htaccess(没有)或配置文件中唯一提及的 index.html 是目录索引,我曾尝试明确禁用它,但Options -Indexes没有效果。

答案1

您在 中缺少尾部斜杠Alias。尾部斜杠必须匹配。

<Location /.well-known/acme-challenge/>
    ProxyPass "!"
    Alias /run/acme/.well-known/acme-challenge/
</Location>

相关内容