ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
ASP.NET Core 發(fā)布至Linux生產(chǎn)環(huán)境 Ubuntu 系統(tǒng),之前跟大家講解了 dotnet publish 發(fā)布,而沒有將整個(gè)系統(tǒng)串起來。
今天就跟大家綜合的講一下ASP.NET Core發(fā)布至Linux生產(chǎn)環(huán)境。
?
開發(fā)及發(fā)布環(huán)境:WIN10 x64?
生產(chǎn)Linux環(huán)境:Ubuntu 14.04
?
發(fā)布的示例代碼:?https://github.com/linezero/NETCoreBBS
代碼下載下來,首先請(qǐng)注釋 Program.cs 中?.UseUrls("http://*:80")
本篇將以發(fā)布dotnet publish兩種方式做介紹。
默認(rèn)發(fā)布
下載示例代碼,定位到?src\NetCoreBBS 文件夾。
首先dotnet restore, 然后輸入dotnet publish命令既可。
?
自帶運(yùn)行時(shí)發(fā)布
定位到?src\NetCoreBBS 文件夾,打開 project.json 文件。
注釋掉?"type": "platform"?
首先同樣 dotnet restore, 然后輸入dotnet publish -r?ubuntu.14.04-x64
?
Ubuntu?配置
將剛才發(fā)布的文件夾分別上傳至ubuntu系統(tǒng),這里給大家推薦一個(gè)工具?WinSCP。
對(duì)于默認(rèn)發(fā)布,則使用, dotnet NetCoreBBS.dll?這里需要安裝.NET Core SDK。
對(duì)于自帶運(yùn)行時(shí),設(shè)置權(quán)限,及安裝對(duì)應(yīng)依賴,無需安裝SDK,直接使用 ./NetCoreBBS?運(yùn)行。
設(shè)置權(quán)限:?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 節(jié)點(diǎn)如下。
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;} }然后重新啟動(dòng) Nginx
sudo service nginx restart?
3.安裝及配置supervisor
sudo apt-get install supervisor?
安裝好?supervisor 以后,下面就來配置。
定位到?/etc/supervisor/conf.d/ 文件夾,添加一個(gè)NetCoreBBS.conf 文件。
下面是dotnet?NetCoreBBS.dll 命令方式。經(jīng)過多次的坑,終于得到最終配置文件。這里因?yàn)橛玫絊qlite 數(shù)據(jù)庫,需要指定目錄。
[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 用戶,大家也可以放置在其他文件夾。
?
下面是自帶運(yùn)行時(shí)方式,自帶運(yùn)行時(shí)可以省略掉第一步,無需安裝SDK 安裝幾個(gè)依賴就行。可以參考之前文章: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?
然后我們?cè)L問設(shè)置的ip 或者域名就能訪問ASP.NET Core 站點(diǎn)了。
大家如果要配置多個(gè)站點(diǎn),可以在Nginx 里進(jìn)行配置。
?
參考文檔:https://docs.asp.net/en/latest/publishing/linuxproduction.html
?
如果你覺得本文對(duì)你有幫助,請(qǐng)點(diǎn)擊“推薦”,謝謝。
轉(zhuǎn)載于:https://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core 发布至Linux生产环境 Ubuntu 系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】ogre内存管理
- 下一篇: NetCDF 入门