极限五分钟,在宝塔中用 Docker 部署升讯威在线客服系统
最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可。
客户组织多名客服上线后,所有员工同一时间打开访客页面疯狂不停的给在线客服发消息,系统稳定无异常无掉线,客服回复消息正常。消息实时到达无任何延迟。
本文介绍在宝塔面板中用 Docker 方式部署升讯威在线客服系统
现在开始,五分钟搞定一切。
安装 Docker 管理器
进入宝塔面板的“软件商店”画面,搜索 Docker
,找到 “Docker管理器” 并安装。
下载并启动服务器镜像
进入宝塔面板的“软件商店”画面,搜索 Docker
,找到 “Docker管理器” ,点击右侧的 “设置”。
获取镜像
在 Docker 管理器的设置画面,选择“镜像管理”标签,点击“获取镜像”。
在“官方库”下输入镜像名称 iccb1013/linkup:latest
,点击“获取镜像”。
等待获取镜像完成。
创建容器
在 Docker 管理器的设置画面,选择“容器列表”标签,点击“创建容器”。
选择镜像 iccb1013/linkup:latest
,添加端口映射:8021、8022、8023、9527
。
如果你的宿主机端口被占用,可自行调整要映射的宿主机端口。
执行命令输入 /usr/sbin/init
。
勾选“开机自动启动”。
点击“提交”按钮。
创建容器完成。
更新容器中的客服系统配置文件
进入宝塔面板的“软件商店”画面,搜索 Docker ,找到 “Docker管理器” ,点击右侧的 “设置”。
点击容器列表中,客服系统容器右侧的“终端”。
进入容器终端。
修改主程序配置文件
vim /wwwroot/Server/appsettings.json
将 TcpIdAddress
修改为你的宿主机 IP 地址。
将 ResourceAddress
和 HostAddress
分别修改为你的静态资源站点域名和主程序域名。
数据库连接串无需修改,镜像中已经配置了 MySQL 数据库。
其它配置请参阅:主程序配置文件修改维护说明
修改完毕后,重新启动主程序服务
systemctl restart kfServer.service
修改静态资源站点配置文件
vim /wwwroot/Resource/embedded.js
将 __apiUrl
和 __resourceUrl
分别修改为你的主程序域名和静态资源站点域名。
继续修改静态资源站点的配置文件
vim /wwwroot/Resource/WebChat/Config.js
将 __apiUrl
和 __resourceUrl
分别修改为你的主程序域名和静态资源站点域名。
修改管理后台配置文件
vim /wwwroot/Management/config.js
将 ApiUrl
和 ResourceUrl
分别修改为你的主程序域名和静态资源站点域名。
全部修改完毕后,关闭终端画面。
配置服务器主程序站点
进入宝塔面板的“网站”画面,点击“添加网站”按钮,在弹出的添加对话框中,输入:
你的静态资源站点域名,如 kf-api.yourname.com
根目录无需选择,保持默认即可
PHP 版本选择 纯静态
然后点击“提交”按钮
添加成功后,点击右侧的“设置”。
然后切换到“反向代理”画面,然后切换到“配置文件”后,在开头部分添加以下内容:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream dotnet_server_proxy {server localhost:5000; keepalive 2000;
}
接着切换到“反向代理”画面,点击 “添加反向代理”。
代理名称输入 Server
目标 URL 输入 http://localhost:8021
然后点击“提交”按钮
添加反向代理成功后,点击“配置文件”。
在反向代理的配置文件中,将以下内容添加到 location /
节点:
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
完成站点配置后,在站点列表中点击状态列中的“运行中”,重新启动站点以使配置全部生效。
访问站点的域名,如 http://kf-api.yourname.com ,显示出版本信息。
配置静态资源站点
进入宝塔面板的“网站”画面,点击“添加网站”按钮,在弹出的添加对话框中,输入:
你的静态资源站点域名,如 kf-resource.yourname.com
根目录无需选择,保持默认即可
PHP 版本选择 纯静态
然后点击“提交”按钮
添加成功后,点击右侧的“设置”。
打开设置画面,然后切换到“反向代理”画面,点击 “添加反向代理”。
代理名称输入 Resource
目标 URL 输入 http://localhost:8022
然后点击“提交”按钮
访问静态资源站点的域名,如 http://kf-resource.yourname.com/v.html
,显示出版本信息。
配置 Web 管理后台
进入宝塔面板的“网站”画面,点击“添加网站”按钮,在弹出的添加对话框中,输入:
你的静态资源站点域名,如 kf-m.yourname.com
根目录无需选择,保持默认即可
PHP 版本选择 纯静态
然后点击“提交”按钮
添加成功后,点击右侧的“设置”。
打开设置画面,然后切换到“反向代理”画面,点击 “添加反向代理”。
代理名称输入 Management
目标 URL 输入 http://localhost:8023
然后点击“提交”按钮
访问静态资源站点的域名,如 http://kf-m.yourname.com
,显示出登录画面。
使用配置主程序时初始化得到的默认账户 kf1
和密码 123
登录。
从容器中下载匹配的客服端软件开始使用
-
从部署好的站点中下载匹配的客服端软件
http://kf-resource.yourname.com/shell.zip
-
解压后运行 Sheng.Linkup.Client.Shell.exe,并在登录画面中修改服务器地址为你的主程序域名
然后使用默认的客服账户kf1
和密码123
登录。
- 打开访客聊天页面,输入内容后点击发送按钮。
http://kf-resource.yourname.com/WebChat/WebChat.html?sitecode=freesite
即可开始与客服聊天,更详细的使用说明和集成说明,请参阅在线文档的相关章节。
相关文章:

极限五分钟,在宝塔中用 Docker 部署升讯威在线客服系统
最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可。 客户组织多名客服上线后,所有员工同一时间打开访客页面疯狂不停的给在线客服发消息,系统稳定无异常无掉线,客服回复消息正常。消息实时到达无任何延迟。 本文…...
Java--静态字段与静态方法
1、静态字段 如果将一个字段定义为static,每个类只有一个这样的字段。而对于非静态的实例字段,每个对象都有自己的一个副本。 例如: class Employee {private static int nextId 1;private int id;... }其中,每一个Employee对…...

多线程的五种“打开”方式
1 概念 1.1 线程是什么?? 线程(Thread)是计算机科学中的一个基本概念,它是进程(Process)中的一个执行单元,负责执行程序的指令序列。线程是操作系统能够进行调度和执行的最小单位。…...

信息熵 条件熵 交叉熵 联合熵 相对熵(KL散度) 互信息(信息增益)
粗略版快速总结 条件熵 H ( Q ∣ P ) 联合熵 H ( P , Q ) − H ( P ) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 信息增益 I ( P , Q ) H ( P ) − H ( P ∣ Q ) H ( P ) H ( Q ) − H ( P , Q ) 信息增益 I(P,Q)H(P)−H(P∣Q)H(P)H(Q)-H(P,Q) 信息…...

Fiddler Response私人订制
在客户端接口的测试中,我们经常会需要模拟各种返回状态或者特定的返回值,常见的是用Fiddler模拟各种请求返回值场景,如重定向AutoResponder、请求拦截修改再下发等等。小编在近期的测试中遇到的一些特殊的请求返回模拟的测试场景,…...

【德哥说库系列】-ASM管理Oracle 19C单实例部署
📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...

手写一个简单爬虫--手刃豆瓣top250排行榜
#拿到页面面源代码 request #通过re来提取想要的有效信息 re import requests import re url"https://movie.douban.com/top250"headers{"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/11…...

【word密码】如何限制word文件中部分内容?
Word文件中有一部分内容不想他人编辑,我们可以设置限制编辑,可以对一部分内容设置限制编辑,具体方法如下: 我们将需要将可以编辑的地方选中,然后打开限制编辑功能 然后勾选限制编辑设置界面中的【限制编辑】和【每个人…...
spring 自定义类型转换-ConverterRegistry
1背景介绍 一个应用工程里面,一遍会涉及到很多的模型转换,如DTO模型转DO模型,DO模型转DTO, 或者Request转DTO模型,总的来说,维护起来还是相对比较复杂。每涉及一个转换都需要重新写对应类的get或者set方法,…...
springboot实现发送短信验证码
目录 一、选择并注册短信服务提供商: 二、添加依赖: 三、配置短信服务信息: 四、编写发送短信验证码的方法: 五、调用发送短信验证码的方法: 一、选择并注册短信服务提供商: 1、选择一个可靠的短信服…...

2024王道408数据结构P144 T18
2024王道408数据结构P144 T18 思考过程 首先还是先看题目的意思,让我们在中序线索二叉树里查找指定结点在后序的前驱结点,这题有一点难至少对我来说…我讲的不清楚理解一下我做的也有点糊涂。在创建结构体时多两个变量ltag和rtag,当ltag0时…...

在windows下安装配置skywalking
1.下载地址 Downloads | Apache SkyWalkinghttp://skywalking.apache.org/downloads/ 2.文件目录说明 将文件解压后,可看到agent和bin目录: Agent:作为探针,安装在服务器端,进行数据采集和上报。 Config:…...

关于大模型参数微调的不同方法
Adapter Tuning 适配器模块(Adapter Moudle)可以生成一个紧凑且可扩展的模型;每个任务只需要添加少量可训练参数,并且可以在不重新访问之前任务的情况下添加新任务。原始网络的参数保持不变,实现了高度的参数共享 Pa…...
方法的引用第一版(method reference)
1、体验方法引用 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿参数做操作那么考虑一种情况:如果我们在Lanbda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再重复逻辑呢&#…...

Android DataBinding 基础入门(学习记录)
目录 一、DataBinding简介二、findViewById 和 DataBinding 原理及优缺点1. findViewById的优缺点2. DataBinding的优缺点 三、Android mvvm 之 databinding 原理1. 简介和三个主要的实体DataViewViewDataBinding 2.三个功能2.1. rebind 行为2.2 observe data 行为2.3 observe …...
spring 错误百科
一、使用Spring出错根源 1、隐式规则的存在 你可能忽略了 Sping Boot 中 SpringBootApplication 是有一个默认的扫描包范围的。这就是一个隐私规则。如果你原本不知道,那么犯错概率还是很高的。类似的案例这里不再赘述。 2、默认配置不合理 3、追求奇技淫巧 4、…...

OpenCV基本操(IO操作,读取、显示、保存)
图像的IO操作,读取和保存方法 1.1 API cv.imread()参数: 要读取的图像 读取图像的方式: cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1 cv.IMREAD*GRAYSCALE :以…...
1.快速搭建Flask项目
一.Pear Admin Flask 官网文档:http://www.pearadmin.com/doc/index.html 1.1下载安装 # 下 载 git clone https://gitee.com/pear-admin/pear-admin-flask# 安 装 pip install -r requirements.txt1.2修改配置 applications下的config.py docker运行的修改dockerdata/conf…...

编程题四大算法思想(三)——贪心法:找零问题、背包问题、任务调度问题、活动选择问题、Prim算法
文章目录 贪心法找零问题(change-making problem)贪心算法要求基本思想适合求解问题的特征 背包问题0/1背包问题0/1背包问题——贪心法 分数背包问题 任务调度问题活动选择问题活动选择——贪心法最早结束时间优先——最优性证明 Prim算法 贪心法 我在当…...

core dump管理在linux中的前世今生
目录 一、什么是core dump? 二、coredump是怎么来的? 三、怎么限制coredump文件的产生? ulimit 半永久限制 永久限制 四、从源码分析如何对coredump文件的名字和路径管理 命名 管理 一些问题的答案 1、为什么新的ubuntu不能产生c…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...

消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...