CentOS 30分钟部署 .net core 在线客服系统

时间:2023-07-25 13:11:50

前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程。期间有一些朋友希望能够给出 Linux 环境的安装部署指导,本文基于 CentOS 8.3 来安装部署。在本文中我详细的记录了:

  • 安装 SQL Server 数据库,创建数据库,执行脚本创建表结构(是否需要支持 MySQL?我也没考虑好,不知你们怎么看。)
  • 安装 Nginx,反向代理到客服系统服务端,并设置开机自启动
  • 安装 .net core ,部署客服系统并开机自启动

我详细列出了需要执行的命令的全过程,跟随本文可以在 30 分钟内完成部署。

简介

升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。

完整私有化包下载地址

https://kf.shengxunwei.com/freesite.zip

当前版本信息

发布日期:2021-6-11

数据库版本:20210608063023_20210608a

通信协议版本:20210609

服务器版本:1.3.1.0

客服程序版本:1.3.3.0

资源站点版本:1.2.56.0

CentOS 30分钟部署 .net core 在线客服系统

CentOS 30分钟部署 .net core 在线客服系统

安装数据库引擎

  1. 下载

    curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo

  2. 安装

    yum install -y mssql-server

  3. 配置

    /opt/mssql/bin/mssql-conf setup

选择 SQL Server 的一个版本:

  1. Evaluation (免费,无生产许可,180 天限制)
  1. Developer (免费,无生产许可)
  2. Express (免费)
  3. Web (付费版)
  4. Standard (付费版)
  5. Enterprise (付费版) - CPU 核心利用率限制为 20 个物理/40 个超线程
  6. Enterprise Core (付费版) - CPU 核心利用率达到操作系统最大值
  7. 我通过零售渠道购买了许可证并具有要输入的产品密钥。

5 安装标准版即可,接着输入 Yes

提示 Enter the SQL Server system administrator password 时输入管理员密码

要注意输入的密码要不低于8位,且要包含字母大小写和数字。

安装命令行工具

  1. 下载

    curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo

  2. 安装

    yum install -y mssql-tools unixODBC-devel

    中途提示时输入 Yes

  3. 添加环境变量

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

    source ~/.bashrc

  4. 连接数据库

    sqlcmd -S localhost -U SA -P '<YourPassword>'

    出现 1> 表示登陆成功

安装 Nginx

安装依赖项

  1. 安装 gcc

    yum -y install gcc

  2. 安装 pcre、pcre-devel

    yum install -y pcre pcre-devel

  3. 安装 zlib

    yum install -y zlib zlib-devel

  4. 安装 openssl

    yum install -y openssl openssl-devel

安装 nginx

  1. 下载

    wget http://nginx.org/download/nginx-1.20.1.tar.gz

  2. 解压缩

    tar zxvf nginx-1.20.1.tar.gz

  3. 进入目录

    cd nginx-1.20.1

  4. 安装和配置,依次执行

    ./configure

    make

    make install

  5. 启动 nginx 服务

    cd /usr/local/nginx/sbin

    ./nginx

  6. 查看nginx服务是否启动成功

    ps -ef | grep nginx

  7. 访问你的服务器IP

    看到显示欢迎页面。

设置开机自动启动

  1. 进入到 /lib/systemd/system/ 目录

    cd /lib/systemd/system/

  2. 创建 nginx.service 文件

    vim nginx.service

  3. 输入以下内容后保存退出

    注意其中的 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

  1. 启动 nginx

    systemctl start nginx.service

  2. 加入开机自启动

    systemctl enable nginx.service

  3. 查看服务当前状态

    systemctl status nginx.service

安装 .Net Core

  1. 安装

    sudo dnf install dotnet-sdk-3.1

创建数据库

  1. 通过命令行登陆

    sqlcmd -S localhost -U SA -P '<YourPassword>'

  2. 创建数据库

    create database KF

    go

  3. 创建数据库表结构

    sqlcmd -i CreateDatabase.sql -d kf -U sa -P '<YourPassword>'

配置服务器主程序

请确认已经完成了对服务器主程序配置文件的配置。

参阅:使用自动化工具配置服务器端程序

配置主程序站点

  1. 上传并解压缩 Server 目录

    tar -xvf Server.tar

  2. 编辑 nginx 配置文件

    vim /usr/local/nginx/conf/nginx.conf

  3. 在 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;
}
}
  1. 在 http 节点下加入
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
  1. 重新加载 nginx 配置文件

    cd /usr/local/nginx/sbin

    ./nginx -s reload

  2. 测试运行

    cd /root/wwwroot/Server/

    dotnet Sheng.Linkup.Server.dll &

  3. 访问域名,进入 Status 查看状态

    https://kf-api.yourname.com/Status

CentOS 30分钟部署 .net core 在线客服系统

  1. 初始化数据

    访问域名,进入 Status/Setup 命令

    如:https://kf-api.yourname.com/Status/Setup

CentOS 30分钟部署 .net core 在线客服系统

设置开机自启动

  1. 进入

    cd /lib/systemd/system/

  2. 创建文件

    vim kfServer.service

  3. 输入以下内容后保存退出

    注意 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
  1. 启动服务器主程序

    systemctl start kfServer.service

  2. 设置开机启动

    systemctl enable kfServer.service

  3. 查看运行状态

    systemctl status kfServer.service

配置静态资源站点

请确认已经完成了对服务器主程序配置文件的配置。

参阅:使用自动化工具配置服务器端程序

配置静态资源站点

  1. 上传并解压缩 Resource 目录

    tar -xvf Resource.tar

  2. 编辑 nginx 配置文件

    vim /usr/local/nginx/conf/nginx.conf

  3. 在 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;
}
}
  1. 为目录赋予访问权限
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”目录为客服端程序。

CentOS 30分钟部署 .net core 在线客服系统

  1. 找到 Shell 目录下的“Sheng.Linkup.Client.Shell.exe”。

CentOS 30分钟部署 .net core 在线客服系统

  1. 初次启动时,配置服务地址。

CentOS 30分钟部署 .net core 在线客服系统

  1. 配置完成后,显示登录界面。

CentOS 30分钟部署 .net core 在线客服系统

  • 如果提示没有返回版本信息,是因为在配置服务器主程序后,没有初始化数据。请查阅 配置服务器主程序 的结尾部分。
  • 如果登录时提示“不允许对非连接的套接字执行此操作”,请检查服务器的防火配置,将客服系统使用的通信规则添加到入站规则,参阅:准备操作系统
  1. 填写默认密码“123”,点击“登录”进入系统。

CentOS 30分钟部署 .net core 在线客服系统

访客聊天测试

登录客服端以后,用浏览器打开你的资源站点域名下的聊天页面,如:

kf-resource.shengxunwei.com/WebChat/WebChat.html?sitecode=freesite

开始聊天。

CentOS 30分钟部署 .net core 在线客服系统

CentOS 30分钟部署 .net core 在线客服系统

发布

将配置好的客服端程序 Shell 目录,压缩或打包分发给客服使用即可。

集成