【问题标题】:Apache split wildcard sub-domain for ProxyPassProxyPass 的 Apache 拆分通配符子域
【发布时间】:2020-03-30 18:52:48
【问题描述】:

我有 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/

此示例中的 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】:

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

    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]
    

    使用的网址:

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

    网址重写为:

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

    【讨论】:

    • 谢谢,实际上我使用 RewriteCond 创建了单独的匹配组,但使用了代理指令 [P]。
    猜你喜欢
    • 1970-01-01
    • 2013-07-13
    • 2013-03-13
    • 2019-11-12
    • 2019-05-01
    • 2015-08-26
    • 2014-02-28
    • 1970-01-01
    • 2020-08-23
    相关资源
    最近更新 更多