本文從零開始介紹如何使用 Supervisor,一步一步的從安裝環境到編寫托管服務文件,設置執行文件、執行文件目錄、日誌輸出配置等細節,最終成功將 .NET Core 應用程式托管到了 Supervisor 中 ...
前言
上一篇文章 Asp.NetCore輕鬆學-部署到 Linux 進行托管 介紹瞭如何在 Centos 上部署自托管的 .NET Core 應用程式,接下來的內容就是介紹如何使用第三方任務管理程式來托管 .NET Core 應用程式,這裡以筆者常用的 Supervisor 為例子,從安裝環境開始,一步一步的進入 Linux 的世界,部署程式還是以上一篇的項目文件 Deploy.Linux 為基礎。
1. 安裝前置條件
Centos 和 ubuntu 下,安裝 supervisor 的步驟有所不同,在 Centos 下,需要先添加 Centos 下的擴展包源,
1.1 安裝 Centos 擴展源
sudo yum install epel-release
1.2. 安裝 supervisor
sudo yum install supervisor
- ubuntu 下使用 apt-get install supervisor 進行安裝
1.3 supervisor 安裝完成
- 輸入supervisord --version 查看安裝已完成,
註意是 supervisord 後面多了一個字元:d,因為安裝的服務名稱是:supervisord.service,通過命令查看服務文件可知道
cat /usr/lib/systemd/system/supervisord.service
1.4 設置 supervisor 開機啟動
sudo systemctl enable supervisord
sudo systemctl start supervisord
1.5 進入 supervisor 控制台執行命令
sudo supervisorctl
進入 supervisor 控制台,表示服務安裝成功,並已成功啟動
2. 創建 supervisor 托管的 .NET Core 的服務配置文件
2.1 查看配置文件目錄
通過查看 cat /etc/supervisord.conf 看到 supervisor 引入配置文件的指定目錄為
[include]
files = supervisord.d/*.ini
可以看到,預設的托管服務配置文件目錄在 supervisord.d/ 下麵,這個目錄的完整地址是 /etc/supervisord.d/
2.2 建立配置文件 demo.ini
關於 supervisor 配置文件的含義,這裡不做過多的解釋,可移步官網查看幫助文檔:http://www.supervisord.org/configuration.html,我們在這裡只做一個最簡單的配置文件,剛好夠啟動 .NET Core 應用程式即可
[program:demo]
command=/usr/bin/dotnet Deploy.Linux.dll ; 輸入執行命令,這裡表示 dotnet Deploy.Linux.dll
directory=/data/sites/demo/publish ; 應用程式根目錄
autostart=true ; 是否自動啟動,當 supervisor 載入該配置文件的時候立即啟動它
autorestart=true ; 是否自動重啟,當執行 dotnet Deploy.Linux.dll 啟動失敗時,會重覆的自動重啟
logfile_maxbytes=50MB ; 該配置文件輸出單個日誌文件的大小
logfile_backups=10 ; 日誌備份個數
loglevel=info ; 記錄日誌級別
stderr_logfile=/data/logs/demo/demo.err.log ; 指定標準錯誤輸出日誌文件
stdout_logfile=/data/logs/demo/demo.out.log ; 指定標準輸出日誌文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 可配置環境變數,該環境變數將通過執行 dotnet Deploy.Linux.dll 命令的時候傳入到 .NET Core 應用程式中
user=root ;啟動服務的用戶
stopsignal=INT
redirect_stderr=true
- 上麵包含了幾個關鍵的參數,都在註釋中了,接下來建立日誌目錄,否則服務啟動出錯,輸入命令
2.3 創建日誌文件目錄
sudo mkdir -p /data/logs/demo
2.4 重啟 supervisor 服務,併進入 supervisorctl
sudo systemctl restart supervisord
sudo supervisorctl
2.5 查看服務狀態
輸入站點地址:http://139.219.9.102/ 查看服務已正常啟動
2.6 查看日誌輸出
查看日誌輸出,定位到目錄 /data/logs/demo 查看日誌文件內容正常
結束語
本文從零開始介紹如何使用 Supervisor,一步一步的從安裝環境到編寫托管服務文件,設置執行文件、執行文件目錄、日誌輸出配置等細節,最終成功將 .NET Core 應用程式托管到了 Supervisor 中,文中都是通過命令形式進行安裝部署,對於接觸 Linux 比較少的同學來說,可能有些不適應,不過不要緊,這些都是很基礎的命令,我們呢,就是要多學多用,達到熟悉和強化記憶,然後平滑過渡到 Linux 平臺。