rpm -q centos-release --- centos-release-7-5.1804.el7.centos.x86_64
yum install libunwind libicu
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
yum install rh-dotnet21 -y sudo yum update sudo yum install dotnet-sdk-2.1
dotnet --info
.NET Core SDK (reflecting any global.json):Version: 2.1.403Commit: 04e15494b6
Runtime Environment:OS Name: centosOS Version: 7OS Platform: LinuxRID: centos.7-x64Base Path: /usr/share/dotnet/sdk/2.1.403/
Host (useful for support):Version: 2.1.5Commit: 290303f510
.NET Core SDKs installed:2.1.403 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:Microsoft.AspNetCore.All 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]Microsoft.AspNetCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]Microsoft.NETCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:https://aka.ms/dotnet-download
vsftpd -v
yum -y install vsftpd
vi /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd.service
systemctl status vsftpd.service
useradd webroot passwd abcd-1234
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld
systemctl enable nginx #設置開機啓動
server { listen 80; location / { proxy_pass http://localhost:5000; 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; } }
yum install policycoreutils-python sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx sudo semodule -i mynginx.pp
再次訪問便可。html
Supervisor 是用 Python 開發的 Linux/Unix 系統下的一個進程管理工具。它可使進程脫離終端,變爲後臺守護進程(daemon)。實時監控進程狀態,異常退出時能自動重啓。python
Supervisor 不支持任何版本的 Window 系統;僅支持在 Python2.4 或更高版本,但不能在任何版本的 Python 3 下工做。nginx
其主要組成部分:git
supervisord:Supervisor 的守護進程服務,用於接收進程管理命令;github
supervisorctl:Supervisor 命令行工具,用於和守護進程通訊,發送管理進程的指令;web
Web Server:Web 端進程管理工具,提供與 supervisorctl 相似功能,管理進程;json
XML-RPC Interface:提供 XML-RPC 接口,請參閱 XML-RPC API文檔。centos
聯網狀態下,官方推薦首選安裝方法是使用easy_install
,它是setuptools(Python 包管理工具)的一個功能。因此先執行以下命令安裝 setuptools:api
yum install python-setuptools
請更換root
用戶,執行以下命令安裝 Supervisor:瀏覽器
easy_install supervisor
運行supervisord
服務的時候,須要指定 Supervisor 配置文件,若是沒有顯示指定,默認會從如下目錄中加載:
$CWD/supervisord.conf #$CWD表示運行 supervisord 程序的目錄 $CWD/etc/supervisord.conf /etc/supervisord.conf /etc/supervisor/supervisord.conf (since Supervisor 3.3.0) ../etc/supervisord.conf (Relative to the executable) ../supervisord.conf (Relative to the executable)
因此,先經過以下命令建立目錄,以便讓 Supervisor 成功加載默認配置:
mkdir /etc/supervisor
加載目錄有了,而後經過echo_supervisord_conf
程序(用來生成初始配置文件)來初始化一個配置文件:
echo_supervisord_conf > /etc/supervisor/supervisord.conf
打開supervisord.conf
文件,能夠看到echo_supervisord_conf
已經幫咱們初始化好了一個樣例配置,咱們須要簡單修改一下。
編輯配置文件
vi /etc/supervisor/supervisord.conf
尾部找到以下文本片斷:
;[include] ;files = relative/directory/*.ini
改成:
[include] files = conf.d/*.conf
即,把前面的分號去掉便可並設置/etc/supervisor/conf.d
爲 Supervisor 進程配置文件加載目錄。
這樣,Supervisor 會自動加載該目錄下.conf
後綴的文件做爲共同服務配置。Supervisor 管理的每一個進程單獨寫一個配置文件放在該目錄下,supervisord.conf
配置文件中保留公共配置。
建立進程配置加載目錄:
mkdir /etc/supervisor/conf.d
接下來就須要爲咱們已經部署的 ASP .NET Core 程序的宿主進程建立一個進程配置文件test.conf
,保存並上傳到/etc/supervisor/conf.d
目錄。
或者經過vi 進行建立,注意該配置文件最好與站點名稱保持一致。
[program:Test] ;自定義進程名稱 command=dotnet Web.dll ;程序啓動命令 directory=/home/webroot/test ;命令執行的目錄 autostart=true ;在Supervisord啓動時,程序是否啓動 autorestart=true ;程序退出後自動重啓 startretries=5 ;啓動失敗自動重試次數,默認是3 startsecs=1 ;自動重啓間隔 user=root ;設置啓動進程的用戶,默認是root priority=999 ;進程啓動優先級,默認999,值小的優先啓動 stderr_logfile=/var/log/test.err.log ;標準錯誤日誌 stdout_logfile=/var/log/test.out.log ;標準輸出日誌 environment=ASPNETCORE_ENVIRONMENT=Production ;進程環境變量 stopsignal=INT ;請求中止時用來殺死程序的信號
啓動 Supervisor 服務,命令以下:
supervisord -c /etc/supervisor/supervisord.conf
supervisorctl -c /etc/supervisor/supervisord.conf
supervisorctl -c /etc/supervisor/supervisord.conf reload
首先爲 Supervisor 新建一個啓動服務腳本supervisor.service
,而後保存並上傳至服務器/usr/lib/systemd/system/
目錄。
腳本內容以下:
# supervisord service for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
設置開啓啓動:
systemctl enable supervisor
驗證是否成功
systemctl is-enabled supervisor
若是輸出enabled
則表示設置成功,也可重啓服務器驗證。
Supervisor 服務啓動後,受其管理的進程會在後臺運行。能夠經過supervisorctl
客戶端管理進程。
輸入以下命令進入supervisorctl
交互終端,按Ctrl
+C
鍵退出:
supervisorctl
輸入help
輸入help ****
查詢詳細命令,好比輸入help stop
supervisor的web管理端
若是須要在遠程訪問,能夠設置爲本機的ip,192.168.226.129:9001
更新配置
supervisorctl update
使其生效
supervisorctl reload
這時能夠在本地瀏覽了
發現並無設置的test的進程,多是由於test.conf沒有其做用的緣由,經過查看配置文件發現supervisor的配置文件[include]目錄路徑寫錯了,修改成下面的目錄
更新,從新加載配置
刷新頁面
到此我們的asp.net core 站點基本配置成功了。固然這裏你也能夠添加nginx的監控,步驟同上,再也不說明了。
Esofar's blog https://www.cnblogs.com/esofar/p/8043792.html