ASP.NET Core 2.x On Ubuntu

安裝.NET Core 

首先須要安裝.NET Core Runtime: https://www.microsoft.com/net/downloadhtml

點擊以後,根據您的Linux發行版不一樣,選擇相應的操做步驟:linux

最後執行dotnet --info驗證安裝是否成功:nginx

 

安裝Nginx

另外還須要安裝Nginx,直接查看官網文檔吧:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1&tabs=aspnetcore2x#install-nginx服務器

安裝好後,訪問這個頁面:http://你的ip地址/index.nginx-debian.html,若是看到以下效果說明安裝成功:併發

配置nginx

根據官網的介紹,asp.net core使用nginx做爲反向代理服務器。 
安裝指令apt-get install nginx。 
安裝成功後進入nginx的安裝目錄cd /etc/nginx app

 

在服務器構建源碼併發布

而後就是發佈程序了,發佈有兩種辦法:asp.net

  • 在開發機上執行dotnet publish而後把發佈的文件複製到服務器上
  • 或者直接在服務器上使用源碼構建併發布,我通常是這樣作的。

因爲我是直接在服務器上構建發佈,因此我須要安裝.NET Core SDK:https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorialtcp

 

而後就可使用發佈命令了:dotnet publish --configuration Release網站

發佈好的文件在bin/Release/netcoreapp*.*/publish下面。.net

再把publish下的全部文件複製到個人目標文件夾便可:

在個人目標目錄下,有這些文件:

 

若是執行 dotnet test.dll,這個程序就會在localhost:5000運行:

 

配置Nginx

而後咱們再回來配置Nginx,進入/etc/nginx/sites-available,裏面有一個Default文件,把它改個名,而後咱們再創建一個新的Default文件:

 

保存後執行sudo nginx -t檢驗這個配置文件。

而後再執行 nginx -s reload 來重啓nginx。

隨後須要再把發佈後的程序運行一下:dotnet test.dll:

 

在我使用網址訪問80端口的時候,會自動跳轉到5001端口,致使鏈接失敗:

這是由於項目裏默認使用了HTTPS Redirection。由於我沒有證書,因此爲了演示,我把HTTPS Redirection相關的代碼註釋掉,再發布:

 

重複上述步驟以後,經過網址的80端口,就能夠正常訪問了:

 

NGINX配置證書和HTTPS

配置HTTPS和證書相關的內容直接去看官方文檔:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1&tabs=aspnetcore2x#configure-ssl

添加proxy.conf和編輯nginx.conf後重啓nginx便可。

 

按照操做,運行後若是不能使用https正常訪問網站,那麼有多是沒法綁定443端口致使的。

查看nginx錯誤日誌:/var/log/nginx/error.log,若是出現下面的錯誤:

能夠執行下列命令來解決:

sudo fuser -k 443/tcp
service nginx restart

 

而後再次訪問https網址:

相關文章
相關標籤/搜索