標籤: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 系統