gpt4 book ai didi

apache - 如果我使用 mod rewrite,是否需要使用 ProxyPassReverse?

转载 作者:行者123 更新时间:2023-12-03 14:31:09 28 4
gpt4 key购买 nike

我正在使用 mod rewrite 来掩盖我的应用程序的上下文根。例如,

RewriteRule ^/directory/(.*) balancer://appcluster/directory/$1 [P]

应用程序集群如下所示:
<Proxy balancer://appcluster>
BalancerMember http://localhost:8080/App route=app_01 keepalive=On loadfactor=1 ttl=300 min=3 smax=5 max=15

ProxySet lbmethod=byrequests stickysession=JSESSIONID|jsessionid timeout=120 nofailover=On
</Proxy>

我需要使用 ProxyPassReverse有吗?我曾经使用它,因为我的旧网络服务器代码如下所示:
ProxyPass /App balancer://appcluster lbmethod=byrequests stickysession=JSESSIONID|jsessionid timeout=120 nofailover=On

ProxyPassReverse /App http://localhost:9013/App

最佳答案

ProxyPassReverse用于在 Apache 将其发送到浏览器之前更改应用程序(appcluster)发送到 Apache 的 header 。例如,如果应用程序位于 http://localhost:9013/ ,并尝试将浏览器重定向到,例如,/new_location/ ,然后它将以 http://localhost:9013/new_location/ 的重定向和位置 header 进行响应, Apache 将把它发送到浏览器。问题是,浏览器(假设它在其他地方)然后尝试向 http://localhost:9013/new_location/ 发送请求。 ,并得到一个错误。

ProxyPassReverse 所做的是拦截这些 header ,并重写它们,使它们与正在执行代理的 Apache 服务器的外观相匹配。因此,如果我的 apache 服务器托管 http://myhost.com/我有一个 ProxyPass那个点/http://localhost:9013/App ,如果位于 localhost:9013 的应用程序返回重定向到 http://localhost:9013/App/new_location/ , 我需要使用 ProxyPassReverse以便将其重写为 http://myhost.com/new_location/在将请求发送回浏览器之前由 Apache 执行。

如果您不发出重定向,这不会成为问题,但如果返回 301/302 重定向,将它放在那里并没有什么坏处。至于 mod_rewrite,RewriteRule 适用于发往 App 的请求,而不是来自 App 的响应。所以它们是相互排斥的事件。

关于apache - 如果我使用 mod rewrite,是否需要使用 ProxyPassReverse?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137861/

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