天天看點

Linux+Nginx+Asp.net Core及守護程序部署

一. 基礎工具和Linux環境準備

    工具介紹:

  Ubuntu:azure雲端linux主機

  Xshell:免費的linux用戶端工具

  FileZilla: 免費檔案上傳(sftp、ftp)工具

   vs2017:  開發工具

  本次部署主要是通過Nginx負載代理.net core服務,提供對外站點通路。.net core 本身的宿主則通過其自帶的Kestrel服務運作。如果你是雲主機請記得在管理控制台添加80通路端口。

  那這裡我先建立一個www檔案夾,作為後邊存放站點檔案的根目錄,同時設定相關權限,這裡可能會有一個小的需要注意的問題,現在很多雲主機直接登入後權限是很低的,需要使用:sudo -s 指令提升權限,否則建立檔案夾會出現權限不足的錯誤。

  1. mkdir /home/www/ossoffical     // 建立ossoffical站點檔案夾

  2. chown [-R] 賬号名稱 ossoffical    // 把賬号名稱添加到www檔案夾的所有者中,保證後續sftp上傳檔案夾等在無法提權的情況下也能操作

  二. .Net Core環境安裝及端口配置

  1. 安裝,這裡參照微軟官網即可,我這裡使用的是Ubuntu 14.04版本,主要執行以下幾條指令

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.1

  2. vs端口相關設定

  這裡需要注意一下,目前版本建立的.net core項目在不制定具體端口的情況下,會預設使用5000端口。但是這個在後續的版本中會移除,見官方文檔:

Linux+Nginx+Asp.net Core及守護程式部署

  并且我也希望自己指定具體的端口,這樣以後站點多了之後防止沖突,我修改自己項目中的Program檔案中内容,指定8000端口,如圖:

Linux+Nginx+Asp.net Core及守護程式部署

  請注意先後的順序,否則在vs中可能會出現調試無法打開的情況,釋出目前項目。

  3. 上傳項目檔案運作

  a. 通過filezilla上傳項目檔案到ossoffical目錄下

  b. 通過指令用戶端進入ossoffical目錄(cd /home/www/ossoffical),執行:dotnet OSS.Offical.Site.dll(我目前站點項目程式集名稱),結果如圖:

Linux+Nginx+Asp.net Core及守護程式部署

  退出執行ctrl+c 。當然我們也可以執行 “ dotnet OSS.Offical.Site.dll & ” ,讓其在背景運作,隻是這個更友善讓我們檢視。這個時候你可以通路對應的8000端口即可通路(雲主機請注意開放通路端口)。

  三. Nginx安裝

  1. 執行:sudo apt-get install nginx  指令

  2. 安裝完成之後通路對應的80端口,應該如下:

Linux+Nginx+Asp.net Core及守護程式部署

  3. 配置代理

  a. mkdir /etc/nginx/hosts   建立一個檔案夾,用來放置站點配置檔案

  b. 執行 cd /etc/nginx/hosts   進入目錄, 執行: vi ossoffical   按 “i” 添加如下内容:

server { listen 80; index index.html index.htm; server_name www.osscoder.com; #域名 location / { proxy_pass http://127.0.0.1:8000; # 剛才設定的位址端口 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; }

  退出儲存。

  4. 修改nginx配置檔案,vi /etc/nginx/nginx.conf

  在http節點末尾,添加 :include /etc/nginx/hosts/*;

  5.  重新開機nginx伺服器: sudo service nginx restart(reload)

Linux+Nginx+Asp.net Core及守護程式部署

 四. 守護程序安裝配置

  為了保證服務能夠穩定運作,我們安裝守護程序以確定在應用程式出現異常中斷時能夠正常重新開機。

   1. 安裝,執行:sudo apt-get install supervisor

  2. 安裝成功後進入:/ect/supervisor/conf.d/ 目錄,添加 ossoffical.conf 檔案,添加如下内容:

[program:OSS.Offical.Site] command=dotnet OSS.Offical.Site.dll //要執行的指令 directory=/home/www/ossoffical //指令執行的目錄 environment=ASPNETCORE__ENVIRONMENT=Production #環境變量 user=osscoder //程序執行的使用者身份 stopsignal=INT autostart=true autorestart=true startsecs=3    //自動重新開機間隔 stderr_logfile=/var/log/ossoffical.err.log    //标準錯誤日志 stdout_logfile=/var/log/ossoffical.out.log     //标準輸出日志

   把對應的目錄和名稱換掉即可,請删除注釋,否則有時會出現指令執行失敗的情況。完畢之後重新開機supervisor:

  sudo service supervisor stop

  sudo service supervisor start

  完成之後可以殺掉程序或者重新開機機器測試。'''

本文轉自xsster51CTO部落格,原文連結:http://blog.51cto.com/12945177/1929790 ,如需轉載請自行聯系原作者

繼續閱讀