欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-19 20:56:30
...

简介

春松客服默认使用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开源协议授权的智能客服系统,春松客服会不断增强客服系统的智能化,这包括利用自然语言处理、机器学习和语音识别等技术让客服工作更有效率、客服满意度更高、成本更低。

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