這段時間一直在研究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網站的訪問頁面: