Odoo 16日志报400 Bad Request错误求助:缺失upgrade请求头
Odoo 16中
bus.websocket 400 Bad Request错误排查方案 这个错误出在WebSocket握手环节,本质是请求缺少触发协议升级的Upgrade头。虽然不影响核心业务运行,但会污染日志,以下是几个实用的排查方向:
反向代理配置遗漏
如果你用Nginx、Apache做反向代理,必须确保配置里正确传递WebSocket相关请求头。以Nginx为例,针对Odoo的长连接端点要加这些配置:location /longpolling { proxy_pass http://你的Odoo服务地址:8069; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; }没配置这些的话,代理会截断WebSocket升级所需的头,导致Odoo返回该错误。
异常客户端请求
可能是浏览器扩展、自定义前端脚本错误地向/longpolling端点发送了普通HTTP请求(而非WebSocket升级请求)。可以打开浏览器开发者工具的Network面板,过滤WS类型请求,同时留意有没有非WS的请求打到这个端点上。Odoo内部配置或自定义模块冲突
检查Odoo的ir.config_parameter参数,确认bus.longpolling_port、bus.server_host等配置和实际部署一致。如果有自定义模块修改过bus相关的路由、中间件逻辑,可以临时禁用所有自定义模块,看错误是否消失,再逐个启用排查问题模块。网络层拦截
防火墙、CDN或安全网关可能拦截了WebSocket的Upgrade头,需要检查这类设备的规则,确保允许HTTP 1.1协议升级到ws/wss的请求通过。
内容的提问来源于stack exchange,提问作者Boris Veselov
相关产品推荐
相关产品推荐

