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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:30:18