服務器的獲取
首先部署項目新翎,需要獲得一個可以長久穩(wěn)定運行的服務器裸违,可以在阿里云、騰訊云等獲取读拆,具體不做贅述汉形,本次的服務器部署纸镊,是在阿里云上進行的。
運行環(huán)境的準備
一概疆、數(shù)據(jù)庫
在一個空白的服務器上部署項目逗威,需要搭建相關的運行環(huán)境,要是數(shù)據(jù)庫也在同一臺服務器上岔冀,則也需要搭建服務器凯旭,這邊使用的是MySQL數(shù)據(jù)庫,具體搭建教程在網(wǎng)絡上都有教程使套,這里不多做陳述罐呼。
二、后端的運行環(huán)境
由于后臺項目代碼是通過.net來編寫的侦高,所以在安裝.net的相關運行時環(huán)境嫉柴,這邊安裝的是.Net Desktop Runtime 6的,相關鏈接:https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-desktop-6.0.28-windows-x64-installer
下載后在服務器直接安裝即可(注:下載時請選擇合適自己項目的版本奉呛,其他版本鏈接:https://dotnet.microsoft.com/zh-cn/download/dotnet)
三计螺、前端的運行環(huán)境
前端運行環(huán)境是使用的nginx期奔,這邊使用的是nginx 1.18.0的版本
官方的下載地址,尋找自己需要的版本:https://nginx.org/en/download.html
后端文件打包和運行
打開Visual Studio危尿,找到自己需要發(fā)布的文件呐萌,點擊發(fā)布,發(fā)布到指定的文件路徑即可
如果需要改變發(fā)布路徑谊娇,點擊“顯示所有設置”
發(fā)布完畢后肺孤,到發(fā)布所在的目錄,將其打包济欢,然后移動至服務器中
服務器中解壓后赠堵,點擊Configurations文件夾,修改其中的ConnectionStrings.json文件法褥,把連接的數(shù)據(jù)庫替換成需要連接的數(shù)據(jù)庫
然后在Configurations文件夾的父級文件中茫叭,在文件路徑一欄,輸入cmd半等,然后回車
出現(xiàn)命令窗口后揍愁,輸入"C:\Program Files\dotnet\dotnet.exe" JNPF.API.Entry.dll --urls=http://*:58001
修改端口僅需修改最后的58001即可
前端的打包和運行
打開Visual Studio Code,打開項目所在的項目文件夾杀饵,在終端窗口中莽囤,運行npm build或者pnpm build,將項目打包切距;完成后朽缎,在項目路徑中,會出現(xiàn)一個“dist”的文件夾
將整個文件夾打成壓縮包谜悟,上傳至服務器中话肖,在服務器中解壓
在服務器中,找到或者移入nginx 1.18.0程序的壓縮包葡幸,解壓后最筒,點擊conf文件夾,修改其中的nginx.conf文件
點擊進去礼患,在http的里面添加 include web/*.conf; 保存是钥,退出;
然后在該目錄中增加一個web文件夾缅叠,創(chuàng)建一個.conf文件悄泥,點擊編輯(注:下面的配置僅筆者使用的,不一定適用所有情況肤粱,需要更據(jù)實際情況來配置)
server {
listen 3500; #你自己的端口
server_name localhost; #你端口的前綴弹囚,更據(jù)你自己的需求改變
index index.html index.htm;
root D:\work\mhwz\front\dist; #上面在服務器中解壓出的dist的路徑
#JNPF-Start
#設置上傳文件的大小
client_max_body_size 100m;
#添加頭部信息
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#請求頭總長度大于128k時使用large_client_header_buffers設置的緩存區(qū)
client_header_buffer_size 128k;
#指令參數(shù)4為個數(shù),128k為大小领曼,默認是8k鸥鹉。申請4個128k蛮穿。
large_client_header_buffers 4 128k;
#指定允許跨域的方法,*代表所有
add_header Access-Control-Allow-Methods 'GET,PUT,POST,DELETE,OPTIONS';
# 預檢命令的緩存毁渗,如果不緩存每次會發(fā)送兩次請求
add_header Access-Control-Max-Age 3600;
#帶cookie請求需要加上這個字段践磅,并設置為true
add_header Access-Control-Allow-Credentials true;
# 表示允許這個域跨域調(diào)用(客戶端發(fā)送請求的域名和端口)
# $http_origin動態(tài)獲取請求客戶端請求的域 不用*的原因是帶cookie的請求不支持*號
add_header Access-Control-Allow-Origin $http_origin;
# 表示請求頭的字段 動態(tài)獲取
add_header Access-Control-Allow-Headers $http_access_control_request_headers;
# 前端主項目偽靜態(tài)
location / {
try_files $uri $uri/ /index.html;
}
# 大屏偽靜態(tài)
location /DataV {
try_files $uri $uri/ /DataV/index.html;
}
# 報表偽靜態(tài)
location /Report/icons/{
try_files $uri $uri/ /Report/icons/;
}
# 后端接口
location /api/ {
proxy_pass http://localhost:5000;
}
# websocket
location /websocket {
proxy_pass http://localhost:5000/api/message/websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
}
# 數(shù)據(jù)報表接口配置
location /ReportServer/ {
proxy_pass http://localhost:30007/;
}
# 文件預覽服務
location /FileServer {
proxy_pass http://localhost:30090;
}
# 解決文件預覽服務無法加載js,css問題
location ~ /FileServer/*.*\.(js|css)?$ {
proxy_pass http://localhost:30090;
}
#JNPF-End
}
保存后,來到nginx的目錄文件灸异,點擊nginx.exe運行前端
打開任務管理府适,在進程中找到兩個nginx.exe進程,即啟動成功
輸入上面配置的地址和端口
相關問題和建議
1.進入登陸頁面肺樟,后臺報錯缺少yitidgengo.dll文件
在登錄頁檐春,提示報錯,然后再后端的命令窗口中提示缺少yitidgengo.dll文件么伯,到你后端的項目根目錄中尋找文件
路徑是 你的項目位置\back\src\application\JNPF.API.Entry\lib\regworkerid_lib_v1.3.1
然后將lib文件夾復制到服務器的后端目錄中
2.關于創(chuàng)建啟動后端的startup.bat文件
在服務器后端的目錄中疟暖,創(chuàng)建一個新建文本,將后綴改為.bat田柔,后編輯俐巴,將"C:\Program Files\dotnet\dotnet.exe" JNPF.API.Entry.dll --urls=http://*:58001輸入;之后即可在cmd直接啟動startup.bat凯楔,也方便下面將后端作為服務啟動
3.創(chuàng)建服務
需要下載nssm工具窜骄,官網(wǎng)地址:www.nssm.cc
nssm是一個服務封裝程序, 它可以將普通exe程序封裝成服務,實現(xiàn)開機自啟動摆屯,同類型的工具還有微軟自己的srvany,不過nssm更加簡單易用,并且功能強大糠亩。
它的特點如下:
●支持普通exe程序(控制臺程序或者帶界面的Windows程序都可以)
●安裝簡單虐骑,修改方便
●可以自動守護封裝了的服務,程序掛掉了后可以自動重啟
下載地址:https://nssm.cc/download
解壓后選擇win64的即可
將里面的nssm.exe復制到需要創(chuàng)建服務的文件夾赎线,并創(chuàng)建兩個bat文件廷没,分別是nssm_install.bat和nssm_uninstall.bat
nssm_install.bat中內(nèi)容是 nssm install 你要創(chuàng)建的服務名稱
nssm_uninstall.bat中內(nèi)容是 nssm remove 你要刪除的服務名稱
創(chuàng)建完成后,雙擊nssm_install.bat垂寥,會出現(xiàn)nssm的service install 窗口
1.Application Path: 選擇系統(tǒng)安裝的exe或bat颠黎。
2.Startup directory: 選擇exe或bat項目的根目錄。
3.Arguments: 輸入啟動參數(shù)滞项。
4.Service name:服務名稱
點擊Install service即可完成服務安裝