ASP.NET Core Linux 發布

來源:互聯網
上載者:User

標籤:程式集   rect   pat   .bashrc   local   操作   str   and   cto   

這篇部落格參考了以下文章:

  1、http://www.cnblogs.com/ants/p/5732337.html

  2、http://www.linuxidc.com/Linux/2016-11/137010.htm

  大體類似,只是在發布期間遇到一些問題,做了一些記錄。可能其他人遇到的問題都不盡相同,可以參考其他兩篇文章。

配置:
  1. 伺服器:centos7(hyper虛擬機器)
  2. 相關工具:WinSCP(ftp工具),PuTTY
  3. 開發工具:vs2017
  4. 相關軟體:nginx、supervisor
概述:

  請注意部落格發布的時間,現在是asp.net core 的1.0版本,在linux 上,微軟官方推薦nginx 做web伺服器,監聽80連接埠,然後轉寄到asp.net core網站上,asp.net core 網站用supervisor 守護。

準備:

  vs2017 建立一個空的asp.net core 項目,然後以檔案系統方式發布項目,確認本地運行一切正常。

第一步: 安裝centos,.NET Core SDK
  • 安裝centos
  • 安裝.NET Core SDK 
    •   首先安裝依賴  輸入命令 
      sudo yum install libunwind libicu 

    • 下載sdk  地址:https://www.microsoft.com/net/download/linux   選擇centos7.1的,下載完成後通過winscp 上傳到 centos上(注意上傳的位置) 

    • 注意下載後的檔案名稱以及上傳的目錄位址。
    • 建立檔案夾: 
      sudo mkdir -p /opt/dotnet

      解壓縮:

      sudo tar zxf dotnet.tar.gz -C /opt/dotnet

      建立串連:

    • sudo ln -s /opt/dotnet/dotnet /usr/local/bin

      輸入:

      dotnet --info

             

     到此SDK就安裝成功了!!

第二步:上傳ASP.NET Core 
  • 用winscp將檔案 上傳到/home/yin/wwwroot/
  • 在wwwroot檔案夾下 執行:
    dotnet demoweb.dll

     注意吧程式集名稱換成自己本地的程式集名稱

  • 第三步:配置nginx
  • 採用源碼安裝方式安裝Nginx
  • :https://nginx.org/download/nginx-1.12.0.tar.gz    注意下載的時候選擇對應的版本號碼
  • 執行以下命令
  • tar -zxvf nginx-1.12.0.tar.gz
    cd nginx-1.12.0
    ./configuremakesudo make install

    注意如果./configure 失敗,大多是沒有安裝編譯工具,執行:

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

    將nginx執行路徑加到path環境變數上,避免每次啟動nginx 都需要在nginx目錄下

  • vi ~/.bashrc

    添加  

    export PATH="/usr/local/nginx/sbin:$PATH"

    然後輸入以下命令來應用:

    source ~/.bashrc

    修改nginx設定檔:

    vi /usr/local/nginx/conf/nginx.conf

    配置如下:

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

    重啟nginx:

    nginx -s reload

    開放連接埠號碼(管理員操作):

    firewall-cmd --zone=public --add-port=80/tcp --permanentsystemctl restart firewalld

    執行:

    dotnet /home/yin/wwwroot/demoweb.dll

    到這裡就可以訪問了^.^

第四步:安裝supervisor

    我們需要監聽asp.net core網站的運行情況,如果發生異常需要自動重啟,為瞭解決這個問題我們需要安裝supervisor。

  • 下載源碼,:https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419eae/supervisor-3.3.2.tar.gz
  • 上傳到伺服器,執行命令:
    tar zxvf  supervisor-3.3.2.tar.gzcd supervisor-3.3.2sudo python setup.py install

     

  • 安裝過程中可能會提示:meld3>=0.6.5的錯誤
  • 解決辦法:
    wget http://dl.fedoraproject.org/pub/epel/7/x86_64/p/python-meld3-0.6.10-1.el7.x86_64.rpmsudo rpm -ivh python-meld3-0.6.10-1.el7.x86_64.rpm

    配置supervisor:

    mkdir /etc/supervisorecho_supervisord_conf > /etc/supervisor/supervisord.conf

    修改supervisord.conf:

    vi /etc/supervisor/supervisord.conf

    增加如下內容:

    [include]files = conf.d/*.conf

    建立設定檔demoweb.conf:

    mkdir conf.dvi demoweb.conf

    增加如下內容:

    [program:demoweb]command=dotnet demoweb.dll directory=/home/yin/wwwroot/autorestart=true stderr_logfile=/var/log/demoweb.err.logstdout_logfile=/var/log/demoweb.out.logenvironment=ASPNETCORE_ENVIRONMENT=Production user=root stopsignal=INT

    運行supervisor:

    supervisord -c /etc/supervisor/supervisord.conf

     

到此大公告成!!訪問地址

 

ASP.NET Core Linux 發布

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.