Linux+Nginx+Asp.net Core

來源:互聯網
上載者:User

標籤:登入   include   https   cat   key   錯誤   tps   release   使用者   

Linux+Nginx+Asp.net Core

上篇《Docker基礎入門及樣本》文章介紹了Docker部署,以及相關.net core 的打包樣本。這篇文章我將以oss.offical.site網站為例,主要介紹下在linux機器下完整的部署流程,.net core在docker容器中的運行已經介紹,這裡.net core運行環境我會介紹直接在linux啟動並執行情境,內容主要包含以下幾個部分:

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

2. .Net Core環境安裝及連接埠配置

3. Nginx的安裝配置

4. Supervisor守護進程安裝配置

  一. 基礎工具和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連接埠。但是這個在後續的版本中會移除,見官方文檔:

  並且我也希望自己指定具體的連接埠,這樣以後網站多了之後防止衝突,我修改自己項目中的Program檔案中內容,指定8000連接埠,

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

  3. 上傳專案檔運行

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

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

 

  退出執行ctrl+c 。當然我們也可以執行 “ dotnet OSS.Offical.Site.dll & ” ,讓其在後台運行,只是這個更方便讓我們查看。這個時候你可以訪問對應的8000連接埠即可訪問(雲主機請注意開放訪問連接埠)。

 

  三. Nginx安裝

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

  2. 安裝完成之後訪問對應的80連接埠,應該如下:

  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)

  6. 進入網站目錄,dotnet OSS.Offical.Site.dll & ,確保網站正確運行,訪問 www.osscoder.com,如下:

 

 四. 守護進程安裝配置

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

   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

  完成之後可以殺掉進程或者重啟機器測試。

Linux+Nginx+Asp.net Core

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.