WebSphere 反向代理插件 - 跳过域
WebSphere reverse proxy plugin - skipping domains
希望有人能给我一些建议。
我们的 DMZ 中有一个带有 WebSphere 插件的 Linux 框。这指向一个 Windows 框 运行 WebSphere Application Server。
httpd 配置仅包含未指定 ServerAlias 的默认虚拟主机。在 httpd.conf 的虚拟主机中设置了一个重定向,将任何对 service.domain.com 的请求转发到 service.domain.com/wascontext1。 Plugin-cfg.xml 设置了两个 uri 组,wascontext1 和 wascontext2,但只有 1 个被主动使用。
我想使用 Linux 框作为另一个完全独立于 WAS 的应用程序的反向代理。它会有不同的域(即 dimsim.domain.com)但指向相同的 IP。
我打算为此添加另一个虚拟主机,但我不确定 WebSphere 插件将如何处理它。据我了解,如果我设置它并转到 dimsim.domain.com/wascontext1 它将提供 WebSphere 内容,因为 httpd 将所有请求转发到插件。
有没有办法告诉httpd不向基于域名或虚拟主机的WebSphere插件发送请求?或者对 dimsim.domain.com/wascontext 的任何请求进行重写是否可以?
谢谢
jc
编辑:感谢您的回复!我将在我们的第二个未使用的上下文中测试更改 plugin-cfg.xml 中的虚拟主机名称,并让您知道它是如何进行的。
如果您查看 plugin-cfg.xml
文件,您会在文件的第一部分找到类似于以下内容的 virtualhostgroup
部分:
<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:9080"/>
<VirtualHost Name="*:9443"/>
<VirtualHost Name="*:443"/>
<VirtualHost Name="*:80"/>
</VirtualHostGroup>
只需将 Name
从 *
更改为所需的域名,例如service.domain.com
然后插件将只转发对 service.domain.com
主机名的请求。
所以像这样:
<VirtualHost Name="service.domain.com:80"/>
应该适合你。
当请求进入 Web 服务器时,它被传递到 WebSphere 插件,然后插件根据其配置检查请求,以确定它是应该转发到 WebSphere 还是传回 Web 服务器以进行进一步处理。
插件中的 "route" 子句-cfg.xml 是决定转发什么和不转发什么的关键。请求必须匹配要转发的路由中的所有值。路由包含虚拟主机、uris 和集群。请求必须与路由中 VirtualHostGroup 中的虚拟主机、路由中 UriGroup 中的 URI 匹配,并且路由的 ServerCluster 值中必须有可用的服务器才能将请求发送到 WebSphere。
注意-如果您为设置操纵插件-cfg.xml,请注意插件对此配置的格式非常敏感,不正确或无效的条目可能会导致网络服务器崩溃。在生产中使用之前,请务必备份文件并进行测试。此外,如果您修改 WebSphere 配置,它可能会覆盖此文件并清除您的更改。
不需要插件的解决方案-cfg.xml更改:如果您使用基于 Apache 的 HTTP 服务器,您可以有条件地设置 per-request 变量 "skipwas" 以短路WAS 插件处理。
例如
SetEnvIf Host ^dimsim\.domain\.com$ skipwas=1
抱歉回复晚了。
covener 的设置回答满足了我的需要。
SetEnvIf Host ^dimsim\.domain\.com$ skipwas=1
希望有人能给我一些建议。
我们的 DMZ 中有一个带有 WebSphere 插件的 Linux 框。这指向一个 Windows 框 运行 WebSphere Application Server。
httpd 配置仅包含未指定 ServerAlias 的默认虚拟主机。在 httpd.conf 的虚拟主机中设置了一个重定向,将任何对 service.domain.com 的请求转发到 service.domain.com/wascontext1。 Plugin-cfg.xml 设置了两个 uri 组,wascontext1 和 wascontext2,但只有 1 个被主动使用。
我想使用 Linux 框作为另一个完全独立于 WAS 的应用程序的反向代理。它会有不同的域(即 dimsim.domain.com)但指向相同的 IP。
我打算为此添加另一个虚拟主机,但我不确定 WebSphere 插件将如何处理它。据我了解,如果我设置它并转到 dimsim.domain.com/wascontext1 它将提供 WebSphere 内容,因为 httpd 将所有请求转发到插件。
有没有办法告诉httpd不向基于域名或虚拟主机的WebSphere插件发送请求?或者对 dimsim.domain.com/wascontext 的任何请求进行重写是否可以?
谢谢
jc
编辑:感谢您的回复!我将在我们的第二个未使用的上下文中测试更改 plugin-cfg.xml 中的虚拟主机名称,并让您知道它是如何进行的。
如果您查看 plugin-cfg.xml
文件,您会在文件的第一部分找到类似于以下内容的 virtualhostgroup
部分:
<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:9080"/>
<VirtualHost Name="*:9443"/>
<VirtualHost Name="*:443"/>
<VirtualHost Name="*:80"/>
</VirtualHostGroup>
只需将 Name
从 *
更改为所需的域名,例如service.domain.com
然后插件将只转发对 service.domain.com
主机名的请求。
所以像这样:
<VirtualHost Name="service.domain.com:80"/>
应该适合你。
当请求进入 Web 服务器时,它被传递到 WebSphere 插件,然后插件根据其配置检查请求,以确定它是应该转发到 WebSphere 还是传回 Web 服务器以进行进一步处理。
插件中的 "route" 子句-cfg.xml 是决定转发什么和不转发什么的关键。请求必须匹配要转发的路由中的所有值。路由包含虚拟主机、uris 和集群。请求必须与路由中 VirtualHostGroup 中的虚拟主机、路由中 UriGroup 中的 URI 匹配,并且路由的 ServerCluster 值中必须有可用的服务器才能将请求发送到 WebSphere。
注意-如果您为设置操纵插件-cfg.xml,请注意插件对此配置的格式非常敏感,不正确或无效的条目可能会导致网络服务器崩溃。在生产中使用之前,请务必备份文件并进行测试。此外,如果您修改 WebSphere 配置,它可能会覆盖此文件并清除您的更改。
不需要插件的解决方案-cfg.xml更改:如果您使用基于 Apache 的 HTTP 服务器,您可以有条件地设置 per-request 变量 "skipwas" 以短路WAS 插件处理。
例如
SetEnvIf Host ^dimsim\.domain\.com$ skipwas=1
抱歉回复晚了。
covener 的设置回答满足了我的需要。
SetEnvIf Host ^dimsim\.domain\.com$ skipwas=1