ProxyPass的Apache拆分通配符子域

问题描述 投票:0回答:1

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

示例网址:

  • kube-test-selfservice.example.com/app /
  • kube-staging-selfservice.example.com/app2 /

需要代理到:

  • balancer:// kubernetes / test / selfservice / app /
  • balancer:// kubernetes / staging / selfservice / app2 /

desired proxy

重要的是,在这些示例中,随着这些值的更改,必须捕获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>
apache mod-rewrite httpd.conf mod-proxy
1个回答
0
投票

请尝试此操作,我尝试在下面运行,并且有效:

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/

© www.soinside.com 2019 - 2024. All rights reserved.