You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将Oracle HTTP Server作为OpenShift Route的代理?配置求助

问题描述

我们拥有OAM、OIG和SOA等Oracle产品,目前通过OpenShift Route对外访问,Route URL可正常访问。现需要在OAM等产品前部署Oracle HTTP Server(OHS)作为代理,期望架构为:浏览器→OHS→Route→OpenShift上的OAM Pods。

已安装OHS并配置如下:

<VirtualHost xx.xx.xx.xx:xxxx>
    ServerName http://xx.xx.xx.xx:xxxx
    ServerAdmin you@your.address
    RewriteEngine On
    RewriteOptions inherit
    UseCanonicalName On
    RequestHeader set "X-Forwarded-Host" "xx.xx.xx.xx:xxxx"
    LimitRequestFieldSize 655362
    LoadModule weblogic_module   "${PRODUCT_HOME}/modules/mod_wl_ohs.so"
    <IfModule weblogic_module>
    #OAM Entries
    <Location /console>
        WLSRequest ON
        DynamicServerList OFF
        WLCookieName OAMJSESSIONID
        WebLogicCluster xxxxxxxxxxxxxx.apps.dev-rdc-01.xxxxxx.xxxxx.xxxxx.eg:80
    </Location>
    </IfModule>
</VirtualHost>

配置后出现Web Server桥接失败错误:

Failure of Web Server bridge- No backend server available for connection: timed out after 10 seconds or idempotent set to OFF or method not idempotent。

现咨询:

  1. OHS能否作为Route URL的代理?
  2. 若可以,正确配置方法是什么?

解决方案

1. OHS完全可以作为OpenShift Route的代理

你的架构(浏览器→OHS→Route→OAM Pods)是可行的,不存在技术障碍。当前报错是因为配置思路错误:你使用的mod_wl_ohs模块是用来直接连接WebLogic Server集群的,但现在需要代理的是OpenShift Route暴露的HTTP/HTTPS地址,应该改用OHS的反向代理模块mod_proxy系列,而非WebLogic专属的桥接模块。

2. 正确配置步骤

步骤1:启用必要的代理模块

打开OHS的主配置文件(如httpd.conf或ohs.conf),确保加载以下模块:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
# 如果你的Route是HTTPS协议,还需添加以下两个模块:
LoadModule ssl_module modules/mod_ssl.so
LoadModule proxy_ssl_module modules/mod_proxy_ssl.so

步骤2:修改VirtualHost配置

替换原有的mod_wl_ohs相关配置,改用反向代理配置,示例如下:

<VirtualHost xx.xx.xx.xx:xxxx>
    ServerName xx.xx.xx.xx:xxxx  # 注意不要加http://,仅保留主机+端口
    ServerAdmin you@your.address
    RewriteEngine On
    RewriteOptions inherit
    UseCanonicalName On
    # 传递客户端真实请求信息给后端服务
    RequestHeader set "X-Forwarded-Host" "%{HTTP_HOST}e" env=HTTP_HOST
    RequestHeader set "X-Forwarded-Proto" "%{REQUEST_SCHEME}e" env=REQUEST_SCHEME
    RequestHeader set "X-Forwarded-For" "%{REMOTE_ADDR}e" env=REMOTE_ADDR
    LimitRequestFieldSize 65536

    # 核心反向代理配置
    ProxyRequests Off  # 关闭正向代理,仅启用反向代理模式
    ProxyPreserveHost On  # 保留客户端请求的Host头,确保OpenShift Route能正确匹配路由
    SSLProxyEngine On  # 若Route为HTTPS协议,必须开启此选项

    # 代理/console路径到OpenShift Route地址
    <Location /console>
        ProxyPass http://xxxxxxxxxxxx.apps.dev-rdc-01.xxxxxx.xxxxx.xxxxx.eg:80
        ProxyPassReverse http://xxxxxxxxxxxx.apps.dev-rdc-01.xxxxxx.xxxxx.xxxxx.eg:80
        # 如果Route是HTTPS协议,替换为以下两行:
        # ProxyPass https://xxxxxxxxxxxx.apps.dev-rdc-01.xxxxxx.xxxxx.xxxxx.eg:443
        # ProxyPassReverse https://xxxxxxxxxxxx.apps.dev-rdc-01.xxxxxx.xxxxx.xxxxx.eg:443
    </Location>

    # 如需代理所有路径,取消下方注释(按需调整)
    # <Location />
    #     ProxyPass http://xxxxxxxxxxxx.apps.dev-rdc-01.xxxxxx.xxxxx.xxxxx.eg:80
    #     ProxyPassReverse http://xxxxxxxxxxxx.apps.dev-rdc-01.xxxxxx.xxxxx.xxxxx.eg:80
    # </Location>
</VirtualHost>

步骤3:关键配置说明

  • ProxyPreserveHost On:必须开启,否则OHS转发请求时会将Host头替换为Route的地址,导致OpenShift Route无法正确路由到后端Pod。
  • SSLProxyEngine On:如果Route是HTTPS协议,必须启用此选项,否则OHS无法与HTTPS后端建立连接。
  • X-Forwarded系列请求头:确保后端OAM等产品能获取到真实的客户端IP、请求协议等信息,避免后续认证或跳转出现异常。
  • 移除mod_wl_ohs相关配置:该模块仅适用于直接连接WebLogic集群的场景,与当前代理Route的需求不匹配,是导致报错的直接原因。

步骤4:验证配置并重启OHS

  1. 检查配置文件语法正确性:执行httpd -t(或OHS对应的命令,如opmnctl validate)
  2. 重启OHS服务:执行httpd -k restart(或opmnctl restartproc process-type=OHS)

内容的提问来源于stack exchange,提问作者saurabh panai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:31:03