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

Apache反向代理下Bonita Portal URL配置问题求助

我来帮你搞定Bonita Portal反向代理路径调整的问题——你遇到的核心坑点是Bonita本身依赖原有的/bonita上下文路径,单纯修改Apache代理规则会导致Bonita内部生成的资源链接、页面跳转仍指向/bonita/,从而触发404错误。下面分两种目标场景给你完整的配置方案:


场景1:将Bonita映射到根域名(https://www.mybonita.com/)

要实现根路径访问,需要同时调整Tomcat的Bonita部署上下文和Apache的反向代理规则:

  1. 调整Tomcat中Bonita的上下文配置

    • 找到Tomcat的conf/Catalina/localhost目录,把原有的bonita.xml(或对应Bonita部署的上下文配置文件)重命名为ROOT.xml
    • 编辑ROOT.xml,确保docBase指向正确的Bonita war包路径,示例如下:
      <Context docBase="/opt/tomcat/webapps/bonita.war" reloadable="false">
          <!-- 保留原bonita.xml中的其他配置项,比如数据源、参数等 -->
      </Context>
      
    • 重启Tomcat,此时Bonita在Tomcat内部的上下文路径就变为根路径(/)了
  2. 配置Apache 2.4虚拟主机
    在你的HTTPS虚拟主机配置中,替换原代理规则为以下内容:

    <VirtualHost *:443>
        ServerName www.mybonita.com
        SSLEngine On
        # 保留你原有的SSL证书配置
        SSLCertificateFile /path/to/your/cert.crt
        SSLCertificateKeyFile /path/to/your/private.key
    
        # 核心反向代理规则
        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/
    
        # 关键配置:确保Bonita识别正确的请求主机和协议
        ProxyPreserveHost On
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Port "443"
    </VirtualHost>
    
    • 启用必要的Apache模块:执行a2enmod proxy proxy_http headers,然后重启Apache

场景2:将Bonita映射到/myapp/路径(https://www.mybonita.com/myapp/)

如果不想用根路径,这个场景的配置更灵活:

  1. 调整Tomcat中Bonita的上下文配置

    • 方法一:在conf/Catalina/localhost下创建myapp.xml,内容指向Bonita war包:
      <Context docBase="/opt/tomcat/webapps/bonita.war" reloadable="false" path="/myapp">
          <!-- 保留原bonita.xml的其他配置 -->
      </Context>
      
    • 方法二:直接将Tomcatwebapps目录下的bonita.war重命名为myapp.war,Tomcat会自动以/myapp为上下文路径部署
    • 重启Tomcat验证部署路径
  2. 配置Apache 2.4虚拟主机
    修改HTTPS虚拟主机的代理规则:

    <VirtualHost *:443>
        ServerName www.mybonita.com
        SSLEngine On
        # 保留原有SSL证书配置
        SSLCertificateFile /path/to/your/cert.crt
        SSLCertificateKeyFile /path/to/your/private.key
    
        # 映射/myapp/到Tomcat的/myapp/路径
        ProxyPass /myapp/ http://localhost:8080/myapp/
        ProxyPassReverse /myapp/ http://localhost:8080/myapp/
    
        # 同样需要开启主机保留和转发协议头
        ProxyPreserveHost On
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Port "443"
    </VirtualHost>
    
    • 重启Apache生效

额外排查要点

如果配置后仍有问题,按以下步骤检查:

  • 查看Tomcat的logs/catalina.out日志,确认Bonita确实部署在你期望的上下文路径下(根路径或/myapp/)
  • 清除浏览器缓存(或用无痕模式测试),避免旧的/bonita/链接缓存导致的404
  • 调整Bonita的portal.properties配置文件,设置正确的外部访问URL:
    # 根路径场景
    application.url=https://www.mybonita.com/
    # /myapp/场景
    application.url=https://www.mybonita.com/myapp/
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:36:45