ASP.NET Core Linux 發佈

這篇博客參考瞭如下文章:html

  一、http://www.cnblogs.com/ants/p/5732337.htmlpython

  二、http://www.linuxidc.com/Linux/2016-11/137010.htmlinux

  大致相似,只是在發佈期間遇到一些問題,作了一些記錄。可能其餘人遇到的問題都不盡相同,能夠參考其餘兩篇文章nginx

配置:

  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 守護。c++

準備:

  vs2017 新建一個空的asp.net core 項目,而後以文件系統方式發佈項目,確認本地運行一切正常。web

第一步: 安裝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上(注意上傳的位置) centos

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

      解壓縮:bash

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

      建立鏈接:服務器

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

      輸入:asp.net

      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
    ./configure make sudo 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 --permanent
    systemctl 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.gz
    cd supervisor-3.3.2
    sudo 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.rpm
    sudo rpm -ivh python-meld3-0.6.10-1.el7.x86_64.rpm

    配置supervisor:

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

    修改supervisord.conf:

    vi /etc/supervisor/supervisord.conf

    增長以下內容:

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

    建立配置文件demoweb.conf:

    mkdir conf.d
    vi demoweb.conf

    增長以下內容:

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

    運行supervisor:

    supervisord -c /etc/supervisor/supervisord.conf

     

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

相關文章
相關標籤/搜索