CentOS 30分钟部署 .net core 在线客服系统
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程。期间有一些朋友希望能够给出 Linux 环境的安装部署指导,本文基于 CentOS 8.3 来安装部署。在本文中我详细的记录了:
- 安装 SQL Server 数据库,创建数据库,执行脚本创建表结构(是否需要支持 MySQL?我也没考虑好,不知你们怎么看。)
- 安装 Nginx,反向代理到客服系统服务端,并设置开机自启动
- 安装 .net core ,部署客服系统并开机自启动
我详细列出了需要执行的命令的全过程,跟随本文可以在 30 分钟内完成部署。
简介
升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。
完整私有化包下载地址
当前版本信息
发布日期:2021-6-11
数据库版本:20210608063023_20210608a
通信协议版本:20210609
服务器版本:1.3.1.0
客服程序版本:1.3.3.0
资源站点版本:1.2.56.0

安装数据库引擎
下载
curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo安装
yum install -y mssql-server配置
/opt/mssql/bin/mssql-conf setup
选择 SQL Server 的一个版本:
- Evaluation (免费,无生产许可,180 天限制)
- Developer (免费,无生产许可)
- Express (免费)
- Web (付费版)
- Standard (付费版)
- Enterprise (付费版) - CPU 核心利用率限制为 20 个物理/40 个超线程
- Enterprise Core (付费版) - CPU 核心利用率达到操作系统最大值
- 我通过零售渠道购买了许可证并具有要输入的产品密钥。
选 5 安装标准版即可,接着输入 Yes
提示 Enter the SQL Server system administrator password 时输入管理员密码
要注意输入的密码要不低于8位,且要包含字母大小写和数字。
安装命令行工具
下载
curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo安装
yum install -y mssql-tools unixODBC-devel
中途提示时输入Yes添加环境变量
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc连接数据库
sqlcmd -S localhost -U SA -P '<YourPassword>'
出现 1> 表示登陆成功
安装 Nginx
安装依赖项
安装 gcc
yum -y install gcc安装 pcre、pcre-devel
yum install -y pcre pcre-devel安装 zlib
yum install -y zlib zlib-devel安装 openssl
yum install -y openssl openssl-devel
安装 nginx
下载
wget http://nginx.org/download/nginx-1.20.1.tar.gz解压缩
tar zxvf nginx-1.20.1.tar.gz进入目录
cd nginx-1.20.1安装和配置,依次执行
./configure
make
make install启动 nginx 服务
cd /usr/local/nginx/sbin
./nginx查看nginx服务是否启动成功
ps -ef | grep nginx访问你的服务器IP
看到显示欢迎页面。
设置开机自动启动
进入到 /lib/systemd/system/ 目录
cd /lib/systemd/system/创建 nginx.service 文件
vim nginx.service输入以下内容后保存退出
注意其中的 nginx 安装路径
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
内容说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
启动 nginx
systemctl start nginx.service加入开机自启动
systemctl enable nginx.service查看服务当前状态
systemctl status nginx.service
安装 .Net Core
- 安装
sudo dnf install dotnet-sdk-3.1
创建数据库
通过命令行登陆
sqlcmd -S localhost -U SA -P '<YourPassword>'创建数据库
create database KF
go创建数据库表结构
sqlcmd -i CreateDatabase.sql -d kf -U sa -P '<YourPassword>'
配置服务器主程序
请确认已经完成了对服务器主程序配置文件的配置。
参阅:使用自动化工具配置服务器端程序
配置主程序站点
上传并解压缩 Server 目录
tar -xvf Server.tar编辑 nginx 配置文件
vim /usr/local/nginx/conf/nginx.conf在 Server 节点平级添加如下内容
注意server_name处替换为你所使用的域名。
upstream dotnet_server_proxy {
server localhost:5000;
keepalive 2000;
}
server{
listen 80;
listen [::]:80;
server_name kf-api.yourname.com;
location / {
proxy_pass http://dotnet_server_proxy;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
- 在 http 节点下加入
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
重新加载 nginx 配置文件
cd /usr/local/nginx/sbin
./nginx -s reload测试运行
cd /root/wwwroot/Server/
dotnet Sheng.Linkup.Server.dll &访问域名,进入 Status 查看状态
https://kf-api.yourname.com/Status
- 初始化数据
访问域名,进入Status/Setup命令
如:https://kf-api.yourname.com/Status/Setup
设置开机自启动
进入
cd /lib/systemd/system/创建文件
vim kfServer.service输入以下内容后保存退出
注意WorkingDirectory为您的 Server 目录
[Unit]
Description=kfServer service
After=network.target
[Service]
Type=simple
GuessMainPID=true
WorkingDirectory=/root/wwwroot/Server/
StandardOutput=journal
StandardError=journal
ExecStart=dotnet Sheng.Linkup.Server.dll &
Restart=always
[Install]
WantedBy=multi-user.target
启动服务器主程序
systemctl start kfServer.service设置开机启动
systemctl enable kfServer.service查看运行状态
systemctl status kfServer.service
配置静态资源站点
请确认已经完成了对服务器主程序配置文件的配置。
参阅:使用自动化工具配置服务器端程序
配置静态资源站点
上传并解压缩 Resource 目录
tar -xvf Resource.tar编辑 nginx 配置文件
vim /usr/local/nginx/conf/nginx.conf在 Server 节点平级添加如下内容
注意server_name处替换为你所使用的域名。
location下的root后为 Resource 目录路径。
server {
listen 80;
server_name kf-resource.yourname.com;
location / {
root /root/wwwroot/Resource;
index v.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
- 为目录赋予访问权限
chmod 777 /root
chmod 777 /root/wwwroot
chmod 777 /root/wwwroot/Resource
配置发布客服端程序
此页面显示的是私有化部署版本的客服端配置说明,如果您在线使用,下载客服端程序请至:下载安装客服端软件
客服端程序运行需求
操作系统:
- Windows 7 SP1 或更高版本
- Windows Server 2008 R2 SP1 或更高版本
依赖:
- 本程序需要 .Net Framework 4.8 或更高版本。
私有化部署免费版压缩包中已经提供了“ndp48-web.exe”,这是 .Net Framework 4.8 的在线安装程序,推荐使用。只有 1 MB 多的大小,能够自动判断电脑是否已经安装了 .Net Framework 4.8 。
声明
客服程序没有任何恶意代码并经过病毒扫描。 使用的是:
- ESET Internet Security
- McAfee Total Protection
如果执行安装程序时显示 Windows SmartScreen 筛选器窗口,请点击“更多信息”后,点击“运行”按钮即可。
出现该窗口的原因 并不是发现恶意代码 ,而是单纯的指程序没有企业签名。
代码签名证书的价格较贵,需要每年近万元的费用,对于免费软件来说 成本高昂。
此外 360 如果出现类似提示也是由于类似原因,并不是发现恶意代码,而是需要向 360 缴纳认证费。
启动客服端程序
压缩包中的“Shell”目录为客服端程序。
- 找到 Shell 目录下的“Sheng.Linkup.Client.Shell.exe”。
- 初次启动时,配置服务地址。
- 配置完成后,显示登录界面。
- 填写默认密码“123”,点击“登录”进入系统。
访客聊天测试
登录客服端以后,用浏览器打开你的资源站点域名下的聊天页面,如:
kf-resource.shengxunwei.com/WebChat/WebChat.html?sitecode=freesite
开始聊天。
发布
将配置好的客服端程序 Shell 目录,压缩或打包分发给客服使用即可。
集成
CentOS 30分钟部署 .net core 在线客服系统的更多相关文章
- Docker 版 3分钟部署 .net core 开源在线客服系统,他来了
我在博客园发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 前些天又应朋友的要求,发了一篇 CentOS 版本的安装部署教程:https://www.cnblogs.com ...
- .net core 和 WPF 开发升讯威在线客服系统【私有化部署免费版】发布
希望 .net 和 WPF 技术时至今日,还能有一些存在感. 这个项目源于2015年前后,当时开发的初版,我使用了 ASP.NET MVC 做为后端,数据库使用原生 ADO.NET 进行操作.WPF ...
- Linux + .net core 开发升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 有很多朋友一直提出希望能够支持 MySQL 数据库,考虑到已经有朋友在用 SQL Server,我在升级的过程中 ...
- Linux + .net core 开发升讯威在线客服系统:首个经过实际验证的高性能版本
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程: .net core 和 WPF 开发升讯威在线客服系统:目录 https://blog.she ...
- .net core 和 WPF 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...
- .net core 和 WPF 开发升讯威在线客服系统:调用有道翻译接口实现实时自动翻译的方法
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...
- .net core 和 WPF 开发升讯威在线客服系统:把 .Net Framework 打包进安装程序
本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程. 系列文章目录: https://blog.shengxunwei.com/Home/Post/44a3 ...
- .net core 和 WPF 开发升讯威在线客服系统:使用本地IP数据库实现访客来源快速定位,支持国外
本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 免费使用 & 私有化部署:https://kf.shengxun ...
- Linux 运行升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 有很多朋友一直提出希望能够支持 MySQL 数据库,考虑到已经有朋友在用 SQL Server,我在升级的过程中 ...
随机推荐
- 【JavaScript】Leetcode每日一题-平方数之和
[JavaScript]Leetcode每日一题-平方数之和 [题目描述] 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c . 示例1: 输入:c = 5 ...
- c++vs类图
安装visual studio扩展开发工具 一定要勾选右侧栏中的类设计器 安装完成后在菜单栏点击视图--类视图,会出现类视图框,在框中右键项目--查看类视图,就自动生成了.
- C#常见的文件路径Api
我们经常有遇到要处理文件路径的需求,那么一般我们常见的有几种: 程序下面的文件 临时目录下的文件 获取程序下面的文件 首先我们创建了实例解决方案: 其中调用链是:Main.Shell->FooA ...
- opencv——机器视觉检测和计数
引言 在机器视觉中,有时需要对产品进行检测和计数.其难点无非是对于产品的图像分割. 由于之前网购的维生素片,有时候忘了今天有没有吃过,就想对瓶子里的药片计数...在学习opencv以后,希望实现对于维 ...
- auto_increment 自增长
auto_increment create table t20( id int primary key auto_increment, (自增长必须为键) name char(16)); insert ...
- primary key
只要使用innodb就要为表指定主键: 如果不指定mysql就会自己找不为空且为一的作为主键,如果找不到,就会使用默认的(软件自己预定好的)作为主键: 主键分为单列主键和复合主键,用法和单列唯一,联合 ...
- Logstash 的命令行入门 ( 附上相关实验步骤 )
Logstash 的命令行入门 ( 附上相关实验步骤 ) 在之前的博客中,我们已经在 Macbook Big Sur 环境下安装了 ELK 的相关软件,并且已经可以成功运行对应的模块: 如果没有安装的 ...
- Java安全之Filter权限绕过
Java安全之Filter权限绕过 0x00 前言 在一些需要挖掘一些无条件RCE中,大部分类似于一些系统大部分地方都做了权限控制的,而这时候想要利用权限绕过就显得格外重要.在此来学习一波权限绕过的思 ...
- mate桌面用户 root 自动登录lightdm.conf -20190520 方法【fedora 21】mate
桌面用户自动登录lightdm.conf -20190520 方法修改 /etc/lightdm/lightdm.conf 步骤:1 vim /etc/lightdm/lightdm.conf 解除 ...
- Mycat调优启用useOffHeapForMerge报java.lang.NumberFormatException异常解决(附源码)
come from : https://blog.csdn.net/u013716179/article/details/89886452