Odoo 16 CE Discuss应用实时聊天失效问题求助
Odoo 16 CE实时聊天(Discuss)无法实时刷新问题排查修复
核心问题分析
直接访问8072端口正常,但通过Nginx代理后需刷新页面才能显示消息,说明Nginx的websocket代理配置存在错误,同时Odoo配置项有语法问题导致未正确启用代理模式。
修复步骤
1. 修正Odoo配置文件(odoo.conf)的语法错误
你的odoo.conf中proxy mode = True写法错误,Odoo配置项使用下划线分隔,正确格式为:
proxy_mode = True
该错误会导致Odoo无法识别代理环境,进而造成websocket连接路径生成异常。
2. 修正Nginx配置的websocket代理部分
你的Nginx配置存在3个关键问题:
- 未加
#的文本注释会导致Nginx启动失败,所有注释必须以#开头 location /websocket下的proxy_pass末尾斜杠会引发路径重写错误,需移除- 全局
proxy_set_header需放在server块内合适位置,避免覆盖冲突
修正后的Nginx配置关键片段:
#odoo server upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { server_name portoko.com; # Add Content-Security-Policy header add_header 'Content-Security-Policy' 'upgrade-insecure-requests'; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Redirect websocket requests to odoo gevent port location /websocket { proxy_pass http://odoochat; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } # Add Headers for odoo proxy mode proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; # log access_log /var/log/nginx/odoo.access.log; error_log /var/log/nginx/odoo.error.log; # Redirect requests to odoo backend server location / { proxy_redirect off; proxy_pass http://odoo; } # common gzip gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; client_body_in_file_only clean; client_body_buffer_size 32K; client_max_body_size 500M; sendfile on; send_timeout 600s; keepalive_timeout 300; }
3. 重启服务验证
- 重启Odoo服务:
sudo systemctl restart odoo - 重启Nginx服务:
sudo systemctl restart nginx - 重新测试Discuss实时聊天功能,使用两个不同用户在浏览器发送消息,确认无需刷新即可接收。
额外检查项
- 确保服务器防火墙允许80/443端口的websocket流量(若使用HTTPS,需配置SSL证书并调整
X-Forwarded-Proto为https) - 查看Odoo日志(
/var/log/-/odoo.log)和Nginx错误日志(/var/log/nginx/odoo.error.log),排查是否存在websocket连接相关错误
内容的提问来源于stack exchange,提问作者micihn
相关产品推荐
相关产品推荐

