前段時間我發表了一系列文章,開始介紹基於 .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

安裝資料庫引擎

  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

  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 目錄,壓縮或打包分發給客服使用即可。

整合