ASP.NET Core 發布至Linux生產環境 Ubuntu 系統

來源:互聯網
上載者:User

標籤:tde   epo   let   new   eal   keep   git   rar   href   

ASP.NET Core 發布至Linux生產環境 Ubuntu 系統,之前跟大家講解了 dotnet publish 發布,而沒有將整個系統串起來。

今天就跟大家綜合的講一下ASP.NET Core發布至Linux生產環境。

 

開發及發布環境:WIN10 x64 

生產Linux環境:Ubuntu 14.04

 

發布的範例程式碼: https://github.com/linezero/NETCoreBBS

代碼下載下來,首先請注釋 Program.cs 中 .UseUrls("http://*:80")

本篇將以發布dotnet publish兩種方式做介紹。

預設發布

下載範例程式碼,定位到 src\NetCoreBBS 檔案夾。

首先dotnet restore, 然後輸入dotnet publish命令既可。

 

內建運行時發布

定位到 src\NetCoreBBS 檔案夾,開啟 project.json 檔案。

注釋掉 "type": "platform" 

首先同樣 dotnet restore, 然後輸入dotnet publish -r ubuntu.14.04-x64

 

Ubuntu 配置

將剛才發布的檔案夾分別上傳至ubuntu系統,這裡給大家推薦一個工具 WinSCP。

對於預設發布,則使用, dotnet NetCoreBBS.dll 這裡需要安裝.NET Core SDK。

對於內建運行時,設定許可權,及安裝對應依賴,無需安裝SDK,直接使用 ./NetCoreBBS 運行。

設定許可權: chmod -R 755 NetCoreBBS

1.安裝.NET Core SDK

https://www.microsoft.com/net/core#ubuntu

Ubuntu 14.04

sudo sh -c ‘echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list‘sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893sudo apt-get update
sudo apt-get install dotnet-dev-1.0.0-preview2-003121

安裝好以後,就可以使用 dotnet 命令。

2.安裝及配置Nginx
sudo apt-get install nginx

安裝好以後,定位到 /etc/nginx/sites-available/default 檔案。更改server 節點如下。

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

然後重新啟動 Nginx

sudo service nginx restart

 

3.安裝及配置supervisor
sudo apt-get install supervisor

 

安裝好 supervisor 以後,下面就來配置。

定位到 /etc/supervisor/conf.d/ 檔案夾,添加一個NetCoreBBS.conf 檔案。

下面是dotnet NetCoreBBS.dll 命令方式。經過多次的坑,終於得到最終設定檔。這裡因為用到Sqlite 資料庫,需要指定目錄。

[program:NetCoreBBS]command=/usr/bin/dotnet /root/publish/NetCoreBBS.dlldirectory=/root/publishautostart=trueautorestart=truestderr_logfile=/var/log/NetCoreBBS.err.logstdout_logfile=/var/log/NetCoreBBS.out.logenvironment=ASPNETCORE__ENVIRONMENT=Productionuser=rootstopsignal=INT

 

重啟 supervisor,這裡由於我放置在root 檔案夾,所以需要root 使用者,大家也可以放置在其他檔案夾。

sudo service supervisor restart

 

下面是內建運行時方式,內建運行時可以省略掉第一步,無需安裝SDK 安裝幾個依賴就行。可以參考之前文章:http://www.cnblogs.com/linezero/p/5475246.html

[program:NetCoreBBS]command=/root/publishself/NetCoreBBSdirectory=/root/publishselfautostart=trueautorestart=truestderr_logfile=/var/log/NetCoreBBS.err.logstdout_logfile=/var/log/NetCoreBBS.out.logenvironment=ASPNETCORE__ENVIRONMENT=Productionuser=rootstopsignal=INT

 

然後我們訪問設定的ip 或者網域名稱就能訪問ASP.NET Core 網站了。

大家如果要配置多個網站,可以在Nginx 裡進行配置。

 

參考文檔:https://docs.asp.net/en/latest/publishing/linuxproduction.html

 

如果你覺得本文對你有協助,請點擊“推薦”,謝謝。

參考頁面:http://qingqingquege.cnblogs.com/p/5933752.html

ASP.NET Core 發布至Linux生產環境 Ubuntu 系統

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.