gpt4 book ai didi

Apache代理子域根请求

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

描述

  • 具有在 8080 上监听的 webapps 的内部 Tomcat 服务器:
    "http://internal:8080/foo-webservice/"
    "http://internal:8080/foo-website/"
  • 面向外部的 Apache 服务器正在代理对子域的请求:
    "http://foo.domain.com/"
  • 子域根目录的任何请求都将被代理到 Tomcat 上的 foo-website webapp。
  • 任何其他请求都将被代理到适当的路径/webapp

  • 用例 A
  • 要求:
    "http://foo.domain.com/index.html"
  • 代理到:
    "http://internal:8080/foo-website/index.html"

  • 用例 B
  • 要求:
    "http://foo.domain.com/webservice/listener.html?param1=foo&param2=bar"
  • 代理到:
    "http://internal:8080/foo-webservice/listener.html?param1=foo&param2=bar"

  • 虚拟主机定义
  • 满足用例 B 的当前虚拟主机定义:
    <VirtualHost *:80>
    ServerName foo.domain.com

    ProxyRequests Off

    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>

    ErrorLog /var/log/apache2/foo_error.log
    LogLevel warn
    CustomLog /var/log/apache2/foo_access.log combined

    # RewriteRules
    # ?

    # ProxyPass
    ProxyPreserveHost On
    ProxyPass / http://internal:8080/
    ProxyPassReverse / http://internal:8080/
    </VirtualHost>

  • 尝试 1
        # RewriteRules
    RewriteEngine On
    RewriteRule ^/(.*) http://internal:8080/foo-website/$1 [P]
  • 用例A满足
  • 用例 B 失败

  • 尝试 2
        # RewriteRules
    RewriteEngine On
    RewriteRule ^/$ http://internal:8080/foo-website/$1 [P]
  • 用例 B 得到满足
  • 用例 A 不完全满足
  • 加载了 foo-website 中的 index.html,但没有加载 js、img 或 css 文件夹中的任何文件。
  • 最佳答案

    ProxyPass 规则按顺序匹配

     ProxyPass        /webservice/ http://internal:8080/foo-webservice/
    ProxyPassReverse /webservice/ http://internal:8080/foo-webservice/

    ProxyPass /website/ http://internal:8080/foo-website/
    ProxyPassReverse /website/ http://internal:8080/foo-website/

    ProxyPass / http://internal:8080/foo-website/
    ProxyPassReverse / http://internal:8080/foo-website/

    没有重写规则。这还不够好吗?

    关于Apache代理子域根请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861776/

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