春松客服配置 CDN和HTTPS | 春松客服
春松客服使用 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_CER
和YOUR_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
-
已按说明配置好NGINX,443还是无法访问
检查NGINX是否启动,证书文件权限是否可读。CentOS需要关闭SELinux -
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是否生效 -
启用了ssl, 发现重定向的页面都变成http了, 而不是https。
检查代理配置,代理需要传递Host
X-Real-IP
X-Forwarded-For
X-Forwarded-Proto
,NGINX 使用proxy_set_header
,Caddy 使用transparent
-
启用HTTPS后,接入代码里显示的还是http://xxx。
按第2条检查后,使用https地址访问,接入代码会显示正确地址 -
CDN 可以配置多个域名吗?
可以
开源智能客服系统
春松客服是 Chatopera 自主研发的,Apache2.0开源协议授权的智能客服系统,春松客服会不断增强客服系统的智能化,这包括利用自然语言处理、机器学习和语音识别等技术让客服工作更有效率、客服满意度更高、成本更低。