1. 程式人生 > >Asp.NetCore輕松學-使用Supervisor進行托管部署

Asp.NetCore輕松學-使用Supervisor進行托管部署

輸入 level program super site 含義 標準 引入 per

原文:Asp.NetCore輕松學-使用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 平臺。

Asp.NetCore輕松學-使用Supervisor進行托管部署