Linux初探---CentOS7安裝部署.net Core

配置.net Core環境

1.安裝依賴

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

在這裏插入圖片描述
2.安裝sdk

sudo yum install dotnet-sdk-3.1

sdk是包含運行時和開發用的依賴環境包,適用於在服務器上開發使用
runtime只是包含.net core運行的環境。
在這裏插入圖片描述
安裝成功

dotnet --version

在這裏插入圖片描述

離線安裝方式
下載sdk和runtime上傳到CentOS7服務器 在這裏插入圖片描述

部署.net Core應用

1.創建.net Core應用存放目錄
這裏我是放在了/var/www/dotnet目錄下

mkdir /var/www
mkdir /var/www/dotnet

將打包好的.net Core應用上傳到/var/www/dotnet
在這裏插入圖片描述
2.啓動應用

dotnet testcore3.1.dll

在這裏插入圖片描述
應用啓動成功,但是我們還不能通過網絡訪問,所以需要配置nginx反向代理轉發。
3.安裝nginx

curl -o  nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -ivh nginx.rpm
yum install nginx

在這裏插入圖片描述
安裝完成後啓動nginx

systemctl start nginx

設置開機自啓動

systemctl enable nginx

開放80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

如果出現錯誤,說明防火牆沒有開啓
在這裏插入圖片描述
查看防火牆狀態

systemctl status firewalld

在這裏插入圖片描述

開啓防火牆

systemctl start firewalld

在這裏插入圖片描述
重新開放80端口,重啓防火牆使配置生效

systemctl restart firewalld

訪問ip地址驗證nginx是否成功
在這裏插入圖片描述
4.配置nginx對.net Core應用的轉發
修改 /etc/nginx/conf.d/default.conf 文件

vi /etc/nginx/conf.d/default.conf

在這裏插入圖片描述
內容替換爲

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;
    }
}

在這裏插入圖片描述
重啓niginx使配置生效

nginx -s reload

成功
在這裏插入圖片描述

安裝守護進程supervisor

現在有個問題是,啓動的.net core應用必須保持shell窗口的開啓才能運行,關閉shell後,進程也隨之關閉,這顯然不是我們想要的結果,如果服務器斷電重啓了,宕機了,需要手動去啓動應用很麻煩不說,及時性也得不到保證,所以需要一個守護進程的插件,來自動的進行進程的中斷自啓動和監聽。
在這裏插入圖片描述
1.安裝Supervisor

yum install supervisor

在這裏插入圖片描述
2.配置Supervisor

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

修改supervisord.conf文件

vi /etc/supervisor/supervisord.conf

將紅框位置修改爲

[include]
files = conf/*.conf

注意:;是註釋的意思,當時被這個地方卡了很久,就是因爲不知道被註釋掉了,所以怎麼改都不會生效。
在這裏插入圖片描述
/etc/supervisor目錄下創建conf文件夾

mkdir /etc/supervisor/conf

在conf目錄下創建testcore3.1.conf

mkdir /etc/supervisor/conf
touch testcore3.1.conf

在這裏插入圖片描述
編輯文件

vi testcore3.1.conf

修改爲下面內容

[program:testcore3.1]
command=dotnet testcore3.1.dll ; 運行程序的命令
directory=/var/www/dotnet ; 命令執行的目錄
autorestart=true ; 程序意外退出是否自動重啓
stderr_logfile=/var/log/testcore3.1.err.log ; 錯誤日誌文件
stdout_logfile=/var/log/testcore3.1.out.log ; 輸出日誌文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變量
user=root ; 進程執行的用戶身份
stopsignal=INT

運行supervisord,查看是否生效

supervisord -c /etc/supervisor/supervisord.conf
ps -ef | grep testcore3.1

在這裏插入圖片描述
如果出現這個錯誤,意思是守護進程已經在運行了,需要kill掉才能重新運行
在這裏插入圖片描述
查找進程

ps -ef | grep supervisor

在這裏插入圖片描述
殺死進程

kill -9 19293

配置應用程序開機自啓動

/usr/lib/systemd/system目錄下新建supervisord.service

touch /usr/lib/systemd/system/supervisord.service

編輯supervisord.service

vi /usr/lib/systemd/system/supervisord.service

修改爲

# dservice 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 shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

添加開機自啓動

systemctl enable supervisord

在這裏插入圖片描述
驗證

systemctl is-enabled supervisord 

成功
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章