wxochat 端点出现 502 网关错误

访问小部件时,会出现 502 Bad Gateway 错误。 watsonx™ Orchestrate/wxochat/wxoLoader.js 端点返回 502 Bad Gateway 错误,导致“代理协助”小工具无法加载。

故障现象
发生在升级或应用热修复程序之后。
  • “客服助手”小工具加载失败,错误提示:“无法加载聊天脚本。” “请检查您的网络连接,然后重试。”
  • 访问 wxoLoader.js 时,浏览器控制台显示 HTTP 502 错误
  • 嵌入式聊天功能 URL 返回 502 Bad Gateway 错误
  • 应用热修复补丁后可能会出现此问题
解决方案
先决条件
  • 已登录到 OpenShift 集群(oc login)
  • 导出的命名空间变量:
  • export PROJECT_CPD_INST_OPERANDS=<您的命名空间>
  • 编辑 ZenExtension 资源的权限
  1. 步骤 1:备份现有配置
    在进行任何更改之前,请务必先创建备份。
    oc get zenextension wo-watson-orchestrate-zen-service \
     -n ${PROJECT_CPD_INST_OPERANDS} -o yaml > zenextension-backup-$(date +%Y%m%d-%H%M%S).yaml
    Verify the backup file was created:
    ls -lh zenextension-backup-*.yaml
  2. 步骤 2:为 ` ZenExtension ` 添加注释
    此注释可防止操作员覆盖手动更改:
    oc annotate zenextension wo-watson-orchestrate-zen-service \
     wo.watsonx.ibm.com/hands-off="true" \
     -n ${PROJECT_CPD_INST_OPERANDS}
    预期的输出:

    zenextension.zen.cpd.ibm.com/wo-watson-orchestrate-zen-service 带注释的

  3. 步骤 3:编辑 ZenExtension 文件
    打开 ZenExtension 文件进行编辑:
    oc edit zenextension wo-watson-orchestrate-zen-service \
     -n ${PROJECT_CPD_INST_OPERANDS}
  4. 步骤 4:删除 SSL 代理指令
    在编辑器中,找到 /wxochat/ 代码块,如果存在以下四行代码, 请将其删除
    proxy_ssl_trusted_certificate /etc/internal-nginx-svc-tls/ca.crt;
    proxy_ssl_verify on;
    proxy_ssl_certificate /etc/internal-nginx-svc-tls/tls.crt;
    proxy_ssl_certificate_key /etc/internal-nginx-svc-tls/tls.key;
    修正后的 /wxochat/ 位置块应如下所示:
    location /wxochat/ {
        set $provider_id $1;
        proxy_buffer_size         32k;
        proxy_busy_buffers_size   32k;
        proxy_buffers             8 32k;
        client_max_body_size      50m;
    
        proxy_hide_header         X-Frame-Options;
    
        proxy_set_header          Cookie                  "";
        proxy_set_header          Host                    $host:$server_port;
        proxy_set_header          X-Real-IP               $remote_addr;
        proxy_set_header          X-Forwarded-For         $proxy_add_x_forwarded_for;
        proxy_set_header          X-Forwarded-Proto       $scheme;
        proxy_set_header          X-Provider-ID           $provider_id;
        proxy_set_header          Origin                  $http_origin;
    
        proxy_read_timeout        60s;
    
        proxy_pass https://wo-uiproxy.cpd-instance-1.svc:8000/wxochat/;
    
        proxy_pass_header Access-Control-Allow-Origin;
        proxy_pass_header Access-Control-Allow-Methods;
        proxy_pass_header Access-Control-Allow-Headers;
        proxy_pass_header Access-Control-Allow-Credentials;
        proxy_pass_header Access-Control-Max-Age;
        proxy_pass_header Vary;
    }
    
    注:
    • 请勿修改其他位置块
    • 保持正确的 YAML 缩进
    • 仅删除上述列出的四个 proxy_ssl_* 指令
  5. 第 5 步:保存并退出
    vi 编辑器中:
    1. 按 Esc
    2. 类型:wq
    3. 按 Enter 键
  6. 第 6 步:等待对账
    保存后, ZenExtension 将进行对账。 监控状态:
    watch -n 5 "oc get zenextension wo-watson-orchestrate-zen-service -n ${PROJECT_CPD_INST_OPERANDS}"
    The status will transition: Completed → InProgress → Completed
    
    请等待状态恢复为“已完成”后再继续操作。
  7. 第 7 步:重启 watsonx Orchestrate 服务
    重启所有 watsonx Orchestrate 组件以应用更改:
    oc rollout restart $(oc get deployment -o name -l icpdsupport/module=components-services-orchestrate -n ${PROJECT_CPD_INST_OPERANDS})
    Monitor the rollout status:
    oc rollout status deployment -l icpdsupport/module=components-services-orchestrate -n ${PROJECT_CPD_INST_OPERANDS}
    
  8. 第 8 步:验证修复结果
    测试 wxochat 端点:
    curl -I https://<your-cpd-url>/wxochat/wxoLoader.js?embed=true
    预期回复:
    HTTP/1.1 200 OK
    Content-Type: application/javascript
    
    在您的应用程序中测试“代理辅助”小工具,以确认其已成功加载。