gpt4 book ai didi

lighttpd - 使用 Lighttpd mod_proxy 代理子文件夹

转载 作者:行者123 更新时间:2023-12-01 04:02:33 26 4
gpt4 key购买 nike

我在让 mod_proxy 将流量正确转发到在同一台机器上运行的不同网络服务器时遇到问题,以获取预定义的子文件夹。理想情况下,domain.com/docs 应该转发到 127.0.0.1:3000,所有其他流量都应该留在 domain.com 上。这里的重写规则适用于在 domain.com 上运行的 wordpress 安装:

$HTTP["host"] =~ "(^|\.)domain\.com" {
$HTTP["url"] =~ "^/docs" {
proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 3000 )))
}
$HTTP["url"] !~ "^/docs/(.*)" {
url.rewrite = (
"^/(.*)\.(.+)$" => "$0",
"^/wp/(.*)$" => "$0",
"^/(.+)/?$" => "/index.php/$1"
)
server.document-root = "/mnt/webroot/html"
}
}

一段时间以来,我一直在反对这一点,因此欢迎提出任何建议。

最佳答案

我最终找出了导致它无法像我预期的那样工作的问题。

lighttpd 的重写 mod 的工作方式是在评估它的 $HTTP["url"] 条件之前评估所有 url.rewrite 命令,这意味着放置在 $HTTP["url"] 条件中的任何 url.rewrite 命令将不起作用.

我无法找到一个很好的解决方案来解决我正在寻找的具有此限制的实现,而是最终将一些重写下游推送到我将流量代理到的其他服务器(在这种情况下为节点)。

这在 lighttpd 的 ModRewrite 中被松散地提及。带有这一行的文档:

NOTE: url rewriting does not work within a $HTTP["url"] conditional.

关于lighttpd - 使用 Lighttpd mod_proxy 代理子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12470062/

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