【问题标题】:How do I configure an apache server to serve static content and route all other traffic to second host?如何配置 apache 服务器以提供静态内容并将所有其他流量路由到第二台主机?
【发布时间】:2019-08-23 04:22:13
【问题描述】:

我有 Apache (2.4) 在本地运行,为端口 80 提供服务,并希望它直接提供一些静态内容 (css/js/etc)。我有一个在端口 8007 上运行的 weblogic 服务器,它将提供所有动态网页。我希望直接从 Apache 服务器提供一些静态内容,并将所有其他 URL 路由到 weblogic 服务器。静态内容和动态内容都需要具有相同的上下文根 (/myRoot)。我正在尝试使用 mod_proxy。这是我尝试过的 httpd.conf 中当前的相关配置(假设 localhost.mydomain.com 映射到 127.0.0.1):

ServerName localhost.mydomain.com:80
...
ProxyRequests On
ProxyVia On
...
ProxyPass "/myRoot" "http://localhost.mydomain.com:8007/myRoot"
ProxyPassReverse "/myRoot" "http://localhost.mydomain.com:8007/myRoot"

我需要像这样并直接从 Apache 提供的静态内容 URL: http://localhost.mydomain.com/myRoot/static

以上配置让我可以正确连接到运行在 8007 端口的 weblogic 服务器。但是,我正在努力从 Apache Web 服务器获取静态内容。我可以从 apache 服务器的 htdocs 获取内容,但如果我放置 /htdocs/myRoot/static 之类的目录,则静态内容仍会发送到 weblogic 服务器。

【问题讨论】:

    标签: apache webserver


    【解决方案1】:

    我发现这行得通。任何带有 /myRoot 的东西都会进入应用服务器,除非它也以 /myRoot/enterprise/js/dojo 开头,它们都将进入 htdocs 目录。在 htdocs 中,我放置了一个文件夹 /apache/htdocs/myRoot/enterprise/js/dojo。

    ProxyPassMatch ^/myRoot/(enterprise)/(js)/(dojo).* !
    ProxyPass "/myRoot" "http://localhost.mydomain.com:8007/myRoot"
    ProxyPassReverse "/myRoot" "http://localhost.ntrs.com:8007/myRoot"
    

    不幸的是,我还发现我可能需要转而使用 OHS 而不是 apache 才能使网络服务器正确地与 weblogic 一起工作,因此设置它时可能会遇到其他问题 =(.

    编辑: 不过,OHS 设置比我容易。不得不跟踪服务器启动的一些问题,但我只是将其添加到 mod_wl_ohs.conf 并直接在 htdocs 目录中添加了 dojo。下面的正则表达式将匹配 /myRoot,除非它后面跟着 enterprise/js/dojo。正则表达式在 OHS/Apache 中令人困惑 - 出于某种原因不需要转义 / 所以花了一些时间来使正则表达式正确。

    <IfModule weblogic_module>
        <LocationMatch "^/myRoot/((?!enterprise/js/dojo).)*$">
          WLSRequest On
          WebLogicHost localhost.mydomain.com
          WebLogicPort 8007
        </LocationMatch>      
    </IfModule>
    

    【讨论】:

      猜你喜欢
      • 2014-11-15
      • 1970-01-01
      • 2013-09-18
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 2013-08-22
      • 1970-01-01
      相关资源
      最近更新 更多