Apache 为 ProxyPass 拆分通配符子域

Apache split wildcard sub-domain for ProxyPass

我有 Apache 配置,我需要拆分包含虚线子域的 http 主机域,并使用代理传递或重写规则中的这 3 个匹配组构建新路径。

示例网址:

需要代理到:

当这些值发生变化时,捕获此示例中的 testselfservice 很重要。 kube 可以硬编码以区分此主机。

我目前只有基本的代理设置,尝试过多次正则表达式重写,但由于我对 apache 不是很熟悉,希望就这部分提出一些建议。

<VirtualHost *:443>
    ServerName example.com
    ServerAlias *.example.com

    ProxyRequests Off
    ProxyPreserveHost On
    AddDefaultCharset Off

    <Proxy "balancer://kubernetes">
       BalancerMember http://192.168.1.244:30001 route=node1 timeout=600
    </Proxy>

    ProxyPass / "balancer://kubernetes/"
    ProxyPassReverse / "balancer://kubernetes/"

</VirtualHost>

请试试这个,我在下面尝试 运行 并且成功了:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^kube-([a-z0-9_]+.)?-([a-z0-9_]+.)?.example.com [NC]  
RewriteRule "^/?(.*)"  http://kubernetes/%1/%2%{REQUEST_URI} [R=301,L]

二手 URL :

http://kube-test-selfservice.example.com/app/

URL 重写为:

http://kubernetes/test/selfservice/app/