ASP.Net Core 運行在Linux(Ubuntu)

這段時間一直在研究asp.net core部署到linux,今天終於成功了,這裏分享一下個人部署過程。linux

Linux Disibutaion:Ubuntu 14.04nginx

Web Server:nginx、Kestrelweb

一、安裝.net corenpm

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893

sudo apt-get update

sudo apt-get install dotnet-dev-1.0.0-preview2.1-003177

二、安裝.net core成功以後,新建asp.net core mvc項目gulp

#新建文件夾hwapp
mkdir hwapp

#進入hwapp文件夾
cd hwapp

#新建asp.net core mvc項目
dotnet new -t web

#還原.net core nuget包
dotnet restore

三、到這一步還沒法發佈項目,咱們須要安裝npm,gulp,bower這三個工具ubuntu

#安裝npm
sudo apt-get install npm

#安裝gulp
sudo npm install gulp -g

#安裝bower
sudo npm install bower -g

四、完成以後,就能夠對項目進行發佈了bash

#發佈項目,默認發佈路徑在當前項目下bin/Debug/netcoreapp1.1/publish/
dotnet publish

五、下面咱們就要安裝nginx作反向代理mvc

#安裝nginx
sudo apt-get install nginx
#啓動nginx
sudo service nginx start

由於要使用nginx作asp.net core網站的反向代理,咱們須要修改nginx的默認配置文件/etc/nginx/sites-available/default ,將如下內容替換默認配置:app

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

保存退出asp.net

#檢查nginx配置是否zhengque
sudo nginx -t 
#從新加載nginx配置
sudo nginx -s reload

六、安裝supervisor

咱們部署的網站並不會本身啓動並運行,這裏咱們就須要用到supervisor這個工具,保證網站的啓動和持續運行。

#安裝supervisor
sudo apt-get install supervisor

配置supervisor,進入目錄(/etc/supervisor/conf.d/),新建配置文件hwapp.conf,將以下內容複製到文件中

[program:hwapp]
command=/usr/bin/dotnet /var/hwapp/publish/hwapp.dll --server.urls:http://*:5000
directory=/var/hwapp/publish
autostart=true
autorestart=true
stderr_logfile=/var/log/hwapp.err.log
stdout_logfile=/var/log/hwapp.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=www-data
stopsignal=INT

關閉並啓動supervisor

sudo service supervisor stop
sudo service supervisor start

到此,整個部署流程完成了!

下圖在我部署在linux中的asp.net core網站的訪問頁面:

相關文章
相關標籤/搜索