如何配置apache服务器以提供静态内容并将所有其他流量路由到第二台主机?

时间:2019-04-01 22:51:47

标签: apache webserver

我有运行本地端口80的Apache(2.4),并且希望它直接提供一些静态内容(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"

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

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

1 个答案:

答案 0 :(得分:0)

我发现这可行。除非它也以/ myRoot / enterprise / js / dojo开头,否则所有带有/ myRoot的内容都将到达应用程序服务器,所有这些都将到达htdocs目录。在htdocs中,我放置了一个文件夹/ apache / htdocs / myRoot / enterprise / js / dojo。

'Co Ltd'

不幸的是,我还发现我可能需要转而使用OHS而不是Apache来使Web服务器正确地与weblogic配合使用,因此设置=(。

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

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