asp.net core 3.1部署到centos7.3服務器


1 查看服務器.net core環境信息

連接到服務器,輸入 dotnet --info 查看服務器dotnet core環境信息

 這是一台沒有.net core環境的服務器,需要安裝

2 安裝.net core環境

如果服務器只是用來運行.net core程序,則只需安裝.net core runtime即可;如果要做開發和編譯工作,則需要安裝.net core sdk

.net core sdk包含了.net core runtime,所以這里就直接安裝.net core skd了

官方安裝文檔:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos

a 執行命令 sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm 將Microsoft包簽名密鑰添加到受信任密鑰列表,並添加Microsoft包存儲庫

b 執行命令 sudo yum install dotnet-sdk-3.1 安裝.net core 3.1 sdk

安裝結束后,再次輸入 dotnet --info 查看環境信息

 3 創建asp.net core 3.1項目,並發布到文件夾

 4 在centos服務器上創建文件夾,並拷貝上一步發布的好文件

 5 通過centos終端,進入發布文件所在文件夾,執行命令 dotnet 項目名.dll

出現異常信息“Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.”

這個問題Ubuntu上沒出現過,centos為什么有這個問題暫時不糾結了,既然默認的5000端口用不了,那就換個嘍

 指定端口到8090,重新發布並運行,這次啟動成功了

6 通過外網地址訪問

 7 添加nginx做反向代理

  a 使用命令 sudo yum install epel-release 添加nginx包存儲庫

  b 使用命令 sudo yum install nginx 安裝nginx

  c 使用命令 sudo systemctl start nginx 啟動nginx

  d 使用命令 ps -ef |grep nginx 驗證nginx是否啟動成功

   e 可以使用命令 sudo systemctl enable nginx 設置nginx開機啟動

   f 使用命令 sudo systemctl start nginx重啟nginx

8 配置nginx,設置代理端口

 訪問成功

9 為什么要添加守護進程,有以下原因

  a asp.net core程序運行在shell中,shell關閉會導致該web應用關閉

  b 應用程序意外終止的話需要在shell里重新啟動

  c 服務器宕機或者意外重啟的話,需要重新啟動shell,然后重新啟動web程序

10 使用守護進程supervisor

  1)相關命令

  a 使用命令 yum install epel-release 和 yum install supervisor 安裝supervisor

  b 使用命令 systemctl start supervisord.service 啟動服務

  c 使用命令 systemctl status supervisord.service 查看服務狀態

  d 設置開機啟動 systemctl enable supervisord.service

  e 重啟 supervisorctl reload

  2)文件配置

  a 在 /etc/supervisord.d 創建文件 WebApplication1.ini

  b 配置 WebApplication1.ini 如下

自此,asp.net core部署至centos服務器結束。

12 備注

1) nginx.conf配置

server {
        listen 8081;
        location / {
            proxy_pass http://localhost:8090;
            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;
        }
    }

1) WebApplication1.ini配置

[program:WebApplication1]  ;程序的名稱
command = dotnet WebApplication1.dll ;執行的命令
directory = /var/WebApplication/ ;命令執行的目錄
environment = ASPNETCORE__ENVIRONMENT=Production  ;環境變量
user = root  ;執行進程的用戶
stopsignal = INT  
autostart = true  ;是否自動啟動
autorestart = true  ;是否自動重啟
startsecs = 1  ;自動重啟間隔
stderr_logfile = /var/log/WebApplication1.err.log  ;標准錯誤日志
stdout_logfile = /var/log/WebApplication1.out.log  ;標准輸出日志

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM