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


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 417A0893
sudo 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.dll
directory=/root/publish
autostart=true
autorestart=true
stderr_logfile=/var/log/NetCoreBBS.err.log
stdout_logfile=/var/log/NetCoreBBS.out.log
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT

 

重啟 supervisor,這里由於我放置在root 文件夾,所以需要root 用戶,大家也可以放置在其他文件夾。

sudo service supervisor restart

 

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

[program:NetCoreBBS]
command=/root/publishself/NetCoreBBS
directory=/root/publishself
autostart=true
autorestart=true
stderr_logfile=/var/log/NetCoreBBS.err.log
stdout_logfile=/var/log/NetCoreBBS.out.log
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT

 

然后我們訪問設置的ip 或者域名就能訪問ASP.NET Core 站點了。

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

 

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

 

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


免責聲明!

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



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