春松客服配置 CDN和HTTPS | 春松客服

简介

春松客服默认使用HTTP协议,支持HTTPS需使用NGINX、Apache、Caddy等反向代理。

阅读前请先了解
春松客服的编译和部署
春松客服的运维管理

春松客服端口

春松客服默认使用8035和8036两个端口

端口 类型 作用
80 NGINX 访问端口
8035 春松客服监听端口 系统页面
8036 春松客服WebSocket 消息对话

合并端口

受浏览器安全限制HTTPS下,无法连接ws协议WebSocket,且大部分CDN无法根据路径不同回源到不同端口,所以需要把春松客服两个端口合并为一个端口。

通过反向代理,把路径 /socket.io 请求代理到 8036端口,其他请求代理到8035端口,实现端口合并,对外只需要一个80或443端口。

春松客服使用CC_SOCKET_PORT环境变量来设置前端WebSocket连接端口,可以在.env文件中配置,根据实际环境配置为80或443。

下面是 NGINX 和 Caddy 相关配置,配置好比配置CC_SOCKET_PORT=80,重启所有服务,即可通过80端口访问春松客服

NGINX

配置说明

conf.d/default.conf

server {
    root /usr/share/nginx/html;
    client_max_body_size 100M;
    
    location / {
        # 传递请求头
        proxy_set_header Host $host;
        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_pass http://contact-center:8035; 
    }

    # 代理WebScoket
    location /socket.io { 
    # WebScoket 支持
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_http_version 1.1;
    proxy_pass http://contact-center:8036; 
    }
}

Caddy v1

docker-compose.yml 不包含,需自行添加替换NGINX

配置说明

Caddyfile

:80 {
   log stdout
   errors stdout

   proxy / contact-center:8035 {
       # 传递请求头
       transparent
   }

   # 代理WebScoket
   proxy /socket.io contact-center:8036 {
       transparent
       # WebScoket 支持
       websocket
   }
}

使用CDN加速

经上面配置,春松客服已经运行在80端口,设置回源地址为春松客服服务器地址。
CDN开启https后,需要设置 CC_SOCKET_PORT=443

HTTPS

以 NGINX 为例配置HTTS,Caddy 见 Caddy tls 配置

复制证书

复制证书到 nginx/certs 目录

修改NGINX配置

修改 nginx/conf.d/default.conf 添加如下配置,YOUR_CERYOUR_KEY 替换为真实证书名字,完整配置参考 nginx/templates/ssl.conf.

listen 443 ssl;

ssl_certificate /certs/YOUR_CER.cer;
ssl_certificate_key /certs/YOUR_KEY.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

配置春松客服 contact-center

修改 .env 设置 CC_SOCKET_PORT=443,使WebSocket使用443端口。

重启项目

执行 docker-compose restart 重启项目
启动完成后,使用https地址访问测试。

FAQ

  1. 已按说明配置好NGINX,443还是无法访问
    检查NGINX是否启动,证书文件权限是否可读。CentOS需要关闭SELinux

  2. Mixed Content: The page at ‘https://test.*./’ was loaded over HTTPS, but requested an insecure form action 'http://test.*./admin/role/index.html?
    浏览器不允许https页面访问http资源,检查CC_SOCKET_PORT是否生效

  3. 启用了ssl, 发现重定向的页面都变成http了, 而不是https。
    检查代理配置,代理需要传递 Host X-Real-IP X-Forwarded-For X-Forwarded-Proto,NGINX 使用proxy_set_header,Caddy 使用 transparent

  4. 启用HTTPS后,接入代码里显示的还是http://xxx。
    按第2条检查后,使用https地址访问,接入代码会显示正确地址

  5. CDN 可以配置多个域名吗?
    可以

开源智能客服系统

春松客服是 Chatopera 自主研发的,Apache2.0开源协议授权的智能客服系统,春松客服会不断增强客服系统的智能化,这包括利用自然语言处理、机器学习和语音识别等技术让客服工作更有效率、客服满意度更高、成本更低。

开源力量 社区共建

猜你喜欢

转载自blog.csdn.net/watson243671/article/details/105820829
今日推荐