前置部落格(部落格中使用的專案來自於此):
【Docker】 .Net Core 3.1 webapi 整合EF Code First,使用MySql進行業務操作 、配置swagger (三)
環境:.Net Core 3.1 , Centos7.6
工具:連線工具MobaXterm,阿里雲伺服器一臺
1.安裝微軟簽名,不安裝不能使用net。
rpm --import https://packages.microsoft.com/keys/microsoft.asc
2.安裝.net環境,也可以單獨安裝 dotnet-runtime ,但是缺少很多方便的工具包,不推薦。
yum install dotnet-sdk-3.1
3.先修改要釋出的埠號,再右鍵專案釋出,然後修改資訊,釋出。
釋出完,到目標資料夾把檔案拖到 /home/xxx(隨意取名) 目錄下
dotnet Test.dll
使用donet XXX執行專案,Test.dll是專案名。 執行後此專案只能本機訪問,沒有任何作用
PS.
下面使用nginx進行代理轉發請求,使外網也能訪問。
如果啟動的埠是5000
,Nginx 可把5000
埠對映到其他埠。
4.新增 Nginx 儲存庫
在某些Centos版本要新增 CentOS 7 EPEL 倉庫,實測Centos7.8不需要 :
yum install epel-release
5.安裝 Nginx
yum install nginx
6.啟動 Nginx
systemctl enable nginx #設定nginx為開機啟動
systemctl start nginx #啟動nginx服務
// 其他
systemctl status nginx #檢視伺服器狀態
ps -ef | grep nginx #檢視Nginx是否啟動
7.修改 Nginx 配置檔案
兩種方法,第一種是把 /etc/nginx/nginx.conf 檔案中直接改 server 配置資訊
第二種是把 /etc/nginx/nginx.conf 檔案中server註釋掉,然後在 /etc/nginx/conf.d/ 新增一個 xxx.conf 配置檔案,如下所示
紅色畫圈部分的意思是載入這個資料夾下面的所有 .conf 配置檔案
新建一個xxx.conf配置檔案
netcore.conf 配置如下
server { listen 80; location / { proxy_pass http://localhost:8001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $http_host; proxy_cache_bypass $http_upgrade; } }
儲存後重啟nginx
systemctl restart nginx #重啟 nginx 服務
或者重新整理配置
sudo nginx -t #檢查配置檔案
sudo nginx -s reload #重新載入配置檔案
訪問站點80埠(80埠是預設埠自動隱藏),此埠會被nginx轉發至 8001埠
8.配置守護程式Supervisor
專案啟動只能前臺執行,不能進行其他操作,所以要建一個守護程式,使得專案後臺執行
安裝 supervisor
yum install supervisor
檢查 /etc/supervisord.conf 配置檔案,如果不為圈中程式碼,請修改為圈中程式碼。
意思是 supervisord.d 資料夾下的所有 ini 型別的檔案都是配置檔案
到/etc/supervisord.d 目錄下 新建 xxx.ini檔案,檔案配置內容如下 自己定義,記得一定要改執行命令和程式路徑。
[program:TestNetCore] command=dotnet Test.dll #執行命令 directory=/home/dotnet/Test #程式路徑 environment=ASPNETCORE__ENVIRONMENT=Production #環境變數 user=root #設定啟動程式的使用者,預設是root stopsignal=INT #請求停止時用來殺死程式的訊號 autostart=true #自動啟動 autorestart=true #3秒自動重啟 startsecs=3 #自動重啟間隔 stderr_logfile=/var/log/ossoffical.err.log #標準錯誤日誌 路徑可以自定義 stdout_logfile=/var/log/ossoffical.out.log #標準輸出日誌 路徑可以自定義
儲存配置檔案,啟動守護程式,然後設定開機啟動
supervisord -c /etc/supervisord.conf #啟動服務
supervisorctl reload #重新載入配置
systemctl enable supervisord #開機啟動
其他相關操作
supervisorctl shutdown #關閉 systemctl is-enabled supervisord #驗證是否開機啟動
systemctl status supervisord.service #執行命令,檢視伺服器啟動失敗的原因