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:备份现有配置在进行任何更改之前,请务必先创建备份。
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:为 ` 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:编辑 ZenExtension 文件打开 ZenExtension 文件进行编辑:
oc edit zenextension wo-watson-orchestrate-zen-service \ -n ${PROJECT_CPD_INST_OPERANDS} - 步骤 4:删除 SSL 代理指令在编辑器中,找到 /wxochat/ 代码块,如果存在以下四行代码, 请将其删除 :修正后的 /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;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 步:保存并退出在
vi编辑器中:- 按 Esc
- 类型:wq
- 按 Enter 键
- 第 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 步:重启 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 步:验证修复结果测试 wxochat 端点:
预期回复:curl -I https://<your-cpd-url>/wxochat/wxoLoader.js?embed=true
在您的应用程序中测试“代理辅助”小工具,以确认其已成功加载。HTTP/1.1 200 OK Content-Type: application/javascript