gpt4 book ai didi

Apache ProxyPass 错误

转载 作者:行者123 更新时间:2023-11-28 21:47:56 28 4
gpt4 key购买 nike

我必须将 80 上的所有 apache 请求重定向到 8080 上的 tomcat,一条路径除外。

所以,如果接收到 http://example.com/anything --> tomcat:8080.

但是,如果 url 是:http://example.com/site --> apache 应该服务并且不需要重定向。

目前在/var/www/html/中有一个名为site的文件夹。

这是我当前的配置文件:

site.conf (此文件仅包含以下内容,位于 conf.d 文件夹内)

<LocationMatch "/*">
Allow from all
ProxyPass /site !
ProxyPass http://127.0.0.1:8080
ProxyPassReverse http://127.0.0.1:8080
</LocationMatch>

我认为这是用 apache 完成的一件简单的事情,但是我已经尝试了所有我能找到的方法,但我仍然遇到错误:

ProxyPass|ProxyPassMatch can not have a path when defined in a location.

问题是根网站在 tomcat 上运行,但另一个在 apache 上运行(我在这个问题中称为 site 的网站)。

如果有人能提供帮助,我将不胜感激。

谢谢!

更新 1 - 2017 年 9 月 6 日

如果我删除 LocationMatch 并放置 ProxyPass,我就会让它工作直接在 .conf 文件中:

ProxyPass               /site !
ProxyPassReverse /site !
ProxyPass / http://127.0.0.1:8080
ProxyPassReverse / http://127.0.0.1:8080

但是,我想知道,这是为什么?将此指令放在 LocationMatch 标记之外有什么影响?而且,最重要的是,为什么我无法使用 LocationMatch 实现相同的结果?

最佳答案

我认为错误很明显:

ProxyPass|ProxyPassMatch can not have a path when defined in a location.

根据 the documentation , 在像 Location 这样的上下文 block 中或 LocationBlock ProxyPass指令不接受路径:

When used inside a <Location> section, the first argument is omitted and the local directory is obtained from the <Location>. The same will occur inside a <LocationMatch> section; however, ProxyPass does not interpret the regexp as such, so it is necessary to use ProxyPassMatch in this situation instead.

您收到错误是因为您尝试使用路径:

ProxyPass               /site !  

理论上,您可以尝试使用多个 <Location> 来解决此问题部分,像这样:

<Location />
ProxyPass http://backend/
</Location>

<Location /site>
ProxyPass !
</Location>

ordering of these sections is important .

您使用 ProxyPass 的解决方案LocationMatch 之外的指令 block 可能是最简单的解决方案。


作为旁注,您的 LocationMatch指令不正确。 LocationMatch 的参数是正则表达式,/*只会匹配仅包含 / 的 URL人物。也就是说,它将匹配/。或 ///////////等。我想你的意思是/.* . *在正则表达式中表示“前一个字符,零次或多次”。

关于Apache ProxyPass 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46029105/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com