Linux + .net core 開發升訊威在線客服系統:同時支持 SQL Server 和 MySQL 的實現方法

前段時間我發表了一系列文章,開始介紹基於 .net core 的在線客服系統開發過程。
有很多朋友一直提出希望能夠支持 MySQL 數據庫,考慮到已經有朋友在用 SQL Server,我在升級的過程中不能丟下對 SQL Server 的支持,必須讓系統同時支持 SQL Server 和 MySQL。

爲了簡化安裝部署過程,我開發了一個配套的配置工具。

使用自動化配置工具,可以在“數據庫引擎”這一項中,切換 SQL Server 和 MySQL,而不需要部署不同的兩套程序。

在本文我將介紹:

  • CentOS 安裝配置 MySQL 數據庫,創建數據庫,執行腳本創建表結構。
  • 安裝 Nginx,反向代理到客服系統服務端,並設置開機自啓動
  • 安裝 .net core ,部署客服系統並開機自啓動

我詳細列出了需要執行的命令的全過程,跟隨本文可以在 30 分鐘內完成部署。

簡介

升訊威在線客服與營銷系統是基於 .net core / WPF 開發的一款在線客服軟件,宗旨是: 開放、開源、共享。努力打造 .net 社區的一款優秀開源產品。

完整私有化包下載地址

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

當前版本信息

發佈日期:2021-7-8
數據庫版本:20210608a
通信協議版本:20210609
服務器版本:1.3.3.0
客服程序版本:1.3.3.0
資源站點版本:1.2.56.0

準備操作系統

  • 本文以 CentOS 8.3 爲例進行說明,其它版本的 Linux 安裝配置過程大同小異。

開放防火牆端口

客服系統默認使用 9527 端口進行通信,如果開啓了防火牆,請在防火牆中開放此端口。

也可以更改爲其它可用端口號,在後續配置客服系統服務端程序時要做對應的修改。

請確保您所使用的主機服務商提供的防火牆服務中,也開放了對應端口。如阿里雲服務器需要在安全組規則中配置。

安裝 MySQL 數據庫引擎

  1. 下載
    wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

  2. 安裝
    sudo yum install mysql80-community-release-el8-1.noarch.rpm -y
    sudo yum install mysql-community-server -y

如果報 Error: Unable to find a match: mysql-community-server
則先執行 yum module disable mysql
然後再執行 sudo yum install mysql-community-server -y

  1. 啓動
    sudo systemctl start mysqld

  2. 查看安裝時生成的臨時密碼
    sudo cat /var/log/mysqld.log |grep password

  3. 使用臨時密碼連接 MySQL
    mysql -uroot -p

  4. 修改 root 密碼
    alter user root@localhost identified with mysql_native_password by '你的密碼';

安裝 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

如果提示 command not found,則先執行 yum install wget 安裝

  1. 解壓縮
    tar zxvf nginx-1.20.1.tar.gz

  2. 進入目錄
    cd nginx-1.20.1

  3. 安裝和配置,依次執行
    ./configure
    make
    make install

如果提示 command not found,則先執行 yum -y install gcc automake autoconf libtool make 安裝

  1. 啓動 nginx 服務
    cd /usr/local/nginx/sbin
    ./nginx

  2. 查看nginx服務是否啓動成功
    ps -ef | grep nginx

  3. 訪問你的服務器IP
    看到顯示歡迎頁面。

設置開機自動啓動

  1. 進入到 /lib/systemd/system/ 目錄
    cd /lib/systemd/system/

  2. 創建 nginx.service 文件
    vim nginx.service

如果提示 command not found,則先執行 yum -y install vim 安裝

  1. 輸入以下內容後保存退出
    注意其中的 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. 連接數據庫引擎
    mysql -uroot -p

  2. 創建數據庫
    create database kf

  3. 切換到數據庫
    use kf

  4. 創建數據庫表結構
    source createDatabase.sql

配置服務器主程序

請確認已經完成了對服務器主程序配置文件的配置。
參閱:使用自動化工具配置服務器端程序

配置主程序站點

  1. 上傳並解壓縮 Server 目錄
    tar -xvf Server.tar

  2. 編輯 nginx 配置文件
    vim /usr/local/nginx/conf/nginx.conf

  3. 在 Server 節點 平級 添加如下內容
    注意 server_name 處替換爲你所使用的域名。

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''   close;
 }
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;
        }
}

示例文件:https://kf.shengxunwei.com/freesite/nginx.conf.txt

  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

  1. 初始化數據
    訪問域名,進入 Status/Setup 命令
    如:https://kf-api.yourname.com/Status/Setup

設置開機自啓動

  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”目錄爲客服端程序。

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

  1. 初次啓動時,配置服務地址。

  1. 配置完成後,顯示登錄界面。

  • 如果提示沒有返回版本信息,是因爲在配置服務器主程序後,沒有初始化數據。請查閱 配置服務器主程序 的結尾部分。
  • 如果登錄時提示“不允許對非連接的套接字執行此操作”,請檢查服務器的防火配置,將客服系統使用的通信規則添加到入站規則,參閱:準備操作系統
  1. 填寫默認密碼“123”,點擊“登錄”進入系統。

訪客聊天測試

登錄客服端以後,用瀏覽器打開你的資源站點域名下的聊天頁面,如:

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

開始聊天。

發佈

將配置好的客服端程序 Shell 目錄,壓縮或打包分發給客服使用即可。

集成

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