gpt4 book ai didi

Apache 使用不同的转发代理重写请求

转载 作者:行者123 更新时间:2023-12-04 15:37:47 25 4
gpt4 key购买 nike

我想根据请求 header 将 Apache 中的请求转发到不同的转发代理。我认为最好的方法是使用 mod_rewrite,但它只能使用在同一 apache 配置中定义的反向代理。

我还检查了 mod_proxy 的 ProxyRemote 属性,但它不能根据条件使用,只能根据请求 url 使用。

我需要类似的东西:

如果 X-CUSTOM-HEADER 是 value-1 -> 转发请求转发代理 p1
如果 X-CUSTOM-HEADER 是 value-2 -> 转发请求转发代理 p2

等等。

有没有人设法做出这样的事情?

谢谢,
阿林

最佳答案

我找到了一个解决方案,它不是很优雅。它也涉及对第二台服务器的一些调整。

它源自我遇到类似问题的项目,但需要服务器“完全”(由使用数据库资源的自定义脚本选择)。

这至少应该有效(我通过重写映射运行我的 URL 来修改它,我使用 RewriteCond 修改它以使用标题)。

# example for server number "5" in your remote proxy network
RewriteCond %{HTTP:X-CUSTOM-HEADER} 1
RewriteRule http://([a-z0-9\.]+)/(.*) http://$1.5.server.yourdomain.com$1 [P]
ProxyRemoteMatch .*\.5\.server\.yourdomain\.com.* http://5.server.yourdomain.com:80

您基本上调整了 URL,使其成为第二台服务器的子域,然后再次将其剥离。
这部分在第二个(远程代理服务器)上进行:
<ProxyMatch "http://.*\.[0-9]+\.server\.yourdomain\.com/.*">
RewriteEngine on
RewriteRule (proxy:http[s]?://.+)\.[0-9]+\.server\.premiumize\.me(.+) $1$2
... your code ...
</ProxyMatch>

关于Apache 使用不同的转发代理重写请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2457974/

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