ASP.NET Core部署到CentOS7,使用Nginx代理


ASP.NET Core 的運行環境由新開發的 Kestrel Server 負責,IIS 退回到 HTTP 的偵聽器的角色,微軟也特別為了這個需求開發了 IIS Platform Handler,以處理 HTTP 與運行環境之間的信息轉發工作,微軟官方推薦在Linux服務器上使用Nginx,Haproxy等代理Kestrel Server,具體參考 http://weblog.west-wind.com/posts/2016/Jun/06/Publishing-and-Running-ASPNET-Core-Applications-with-IIS

 

基礎環境和相關軟件准備

一、CentOS7.1 64位系統(或者其他CentOS版本的64位系統)

二、XShell軟件(Windows環境下的Linux終端)

三、.NetCore安裝運行

    1.下載安裝,下載地址,https://www.microsoft.com/net/download#core

    2.創建項目

    3.還原依賴庫&運行程序

    4.發布程序&運行程序

    5.后台運行

四、Nginx

    1.下載安裝

    3.運行Nginx

    2.配制環境

    4.運行效果

操作步驟

一、虛擬機安裝好CentOS7.1系統,並調試好網絡

二、安裝好XShell軟件

三、.Net Core安裝運行

1、下載安裝

      yum install libunwind libicu

      curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131

      sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet

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

      命令簡單解釋

      1)安裝必要的支持包

      2)下載.Net Core安裝包(有點大,需要耐心等待。。。。)

      3)解壓安裝包並將文件拷貝到/opt/dotnet目錄

      4)在/usr/local/bin目錄下創建一個名為dotnet的軟鏈接文件指向 /opt/dotnet/dotnet文件,軟鏈接理解為快捷方式即可

2、創建.Net Core應用程序

       mkdir mvctest

       cd mtctest

       dotnet new mvc --auth None --framework netcoreapp1.1

       命令簡單解釋

       1)創建名為mvctest的目錄

       2)進入該目錄

       3)執行dotnet new命令創建一個.Net Core MVC項目 

 3、還原依賴庫&運行程序

      dotnet restore

      dotnet run

      

      會運行在本機的localhost:5000端口,這時dotnet mvc項目已經跑起來了

     命令解釋
     1)根據mvctest項目中的project.json配置文件來還原依賴庫文件(其實就是Nuget從遠端服務器上下載相關依賴文件)

     2)運行mvctest程序(默認訪問地址為:http://localhost:5000)

4、發布程序&運行程序

  第3步已經可以運行程序了,是Debug運行,發布后是Release運行,會有優化

      dotnet publish -c release

  

      dotnet run /root/web/mvc/bin/release/netcoreapp1.1/mvc.dll

     

 5、后台運行

      vim Start.sh,寫入如下內容

      

       chmod +x Start.sh,給文件加入執行權限

       執行腳本,./Start.sh, 程序后台運行,可以關閉Shell窗口

       sh腳本語法

四、Nginx

1、下載安裝

   yum install nginx  提示沒有可用的軟件包,因為nginx位於第三方的yum源里面,而不在centos官方yum源里面

     解決方案:安裝epel;

   去epel官網: http://fedoraproject.org/wiki/EPEL下載;這里面東西有點多難找;

     參考網址

2、運行Nginx    

  命令:systemctl start nginx 來啟動nginx。

                  或者 service nginx start

  命令:systemctl enable nginx 來設置nginx的開機啟動(linux宕機、重啟會自動運行nginx不需要連上去輸入命令)。

                  或者chkconfig nginx on

      運行成功后可以進瀏覽器看一下Nginx是否能正常運行

3、配制環境    

  1)配置防火牆

    命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(開放80端口)

    命令:systemctl restart firewalld(重啟防火牆以使配置即時生效)

  2)關閉SELinux ,使用getenforce 查詢 

    臨時關閉(不用重啟機器):

      setenforce 0                  ##設置SELinux 成為permissive模式

      ##setenforce 1 設置SELinux 成為enforcing模式

    修改配置文件需要重啟機器:

      修改/etc/selinux/config 文件

      將SELINUX=enforcing改為SELINUX=disabled

      重啟機器即可

  3) 修改Nginx 配制,保存

              命令: vim /etc/nginx/nginx.conf 

server {
  listen 80;
  location / {
    proxy_pass http://localhost:5000;
  }
}

      4) 重新加載Nginx配制文件

             命令:nginx -t 測試配制文件是否正確

             命令:nginx -s reload 重新加載nginx配制文件,不用重啟nginx

4、運行效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM