【ASP.NET Core快速入門】(四)在CentOS上安裝.NET Core運行時、部署到CentOS


下載.NET Core SDK

下載地址:https://www.microsoft.com/net/download/windows

第一步:Add the dotnet product feed(添加dotnet產品)

官方安裝說明:https://dotnet.microsoft.com/download

Before installing .NET, you'll need to register the Microsoft key, register the product repository, and install required dependencies. This only needs to be done once per machine.(在安裝.NET之前,您需要注冊Microsoft密鑰,注冊產品存儲庫並安裝所需的依賴項。 這只需要每台機器完成一次。)

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

第二步:Install the .NET SDK(安裝.NET SDK)

Update the products available for installation, then install the .NET SDK.(更新可用於安裝的產品,然后安裝.NET SDK。)

Update the products available for installation, then install the .NET Runtime.(更新可用於安裝的產品,然后安裝.NET Runtime。

sudo yum update
# 安裝SDK
sudo yum install dotnet-sdk-2.2
# 運行時
sudo yum install aspnetcore-runtime-2.2

安裝完成之后我們可以執行dotnet控制台命令來創建dotnet項目了

創建core項目

 在命令行執行  dotnet new --help  命令查看創建幫助

 然后執行  dotnet new webapi -n helloCore  創建webapi項目

 

執行  cd helloCore 命令進入helloCore文件夾

執行  dotnet run  運行webapi,可以看到現在webapi運行在5000端口

這時候訪問http://192.168.110.129:5000/無法訪問,原因是端口沒有打開

這時候程序已經運行了,不可能說停止服務之后再去打開,然后再重新啟動

這里我們的做法是再重啟一個PuTTy

然后執行  curl http://localhost:5000/api/values 查看api是否可以訪問

 

將helloVS項目部署到CentOS

發布之前vs創建的helloVS項目到文件夾,然后我們需要借助一個 FileZilla 工具將文件上傳到CentOS上面

 

在遠程站點輸入 \home 訪問home文件夾,然后再home文件夾下創建netcore文件夾

 然后選擇發布的文件夾,將文件夾內的文件全部上傳上去

傳輸完成后我們繼續使用PuTTy軟件查看文件是否上傳成功

 

這時候執行dotnet helloVS.dll運行我們發布的內容

遇到以上問題的解決方法:

 說明現在的平台上的dotnet SDK不是2.0.3的,執行以下命令即可:

sudo yum install dotnet-sdk-2.0.3

安裝完成后,再次運行helloVS.dll

 

用PuTTy訪問5000端口curl http://localhost:5000

這里可以看到網站已經可以訪問了

Nginx映射端口

進入nginx安裝目錄 cd /etc/nginx

查看nginx.conf

可以看到默認是吧所有的*.conf文件引入進來的

剛開始有默認的80端口的配置,我們要把它注釋掉

注釋后

這時候進入conf.d文件夾發現里面並沒有任何文件

 

這時候我們創建一個netcore.conf文件,將80端口對5000對口進行轉發

 

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;
    proxy_set_header   X-Forwarded-For 
    proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

 配置完成之后執行  nginx -s reload  或者  systemctl restart nginx  進行重啟nginx

然后訪問80端口

這時候訪問發現有可能報502,找了很久才找到解決辦法

原因:SELinux配置問題。 
解決:關閉SELinux。 
輸入:sestatus,如果SELinux status: enabled ,表示開啟,輸入 vi /etc/selinux/config  修改配置: SELINUX=disabled 。 

或者

CentOS: 將NGINX加到SELinux的允許名單

 

yum install policycoreutils-python 

cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx 

semodule -i mynginx.pp 

 然后重啟CentOS

 

 

美滋滋~~~

 


免責聲明!

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



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