春鬆客服配置 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開源協議授權的智能客服系統,春鬆客服會不斷增強客服系統的智能化,這包括利用自然語言處理、機器學習和語音識別等技術讓客服工作更有效率、客服滿意度更高、成本更低。

開源力量 社區共建

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章