在Linux環境下使用Apache部署ASP.NET Core


在前幾篇文章中我們一起探討了如何在Linux環境中安裝ASP.NET Core運行時環境及將ASP.NET Core項目部署在Jexus中,這篇文章中我們將探討如何將ASP.NET Core部署於Apache(阿帕奇)中。
    很幸運能夠和大家一起學習和探討ASP.NET Core

本文章運行環境如下:




(1)安裝Apache web服務器

運行命令行如下:

sudo yum update -y   //更新倉庫

sudo yum -y install httpd mod_ssl   //安裝Apache web服務器

(2)新建一個空ASP.NET Core MVC 項目

運行命令如下:

cd /home    //定位到home目錄下

dotnet new mvc -o hellomvc

接下來我們對空項目做一些變更以符合當前運行環境

   1️⃣  針對Program.cs類 BuildWebHost方法 添加指定端口運行




    
  2️⃣    在Startup.cs添加 Microsoft.AspNetCore.HttpOverrides命名空間,並在Configure方法中添加URL中間件






    
調試當前項目運行是否正常

運行命令如下:

cd /home/hellomvc     //定位到指定目錄

dotnet run     //運行當前項目

運行成功,效果如下:





(3) 生成項目部署文件

運行命令如下:

mkdir -p /var/aspnetcore/hellomvc     //新建目錄 hellomvc

cd /home/hellomvc/     //定位到指定目錄

dotnet publish -o /var/aspnetcore/hellomvc     //生成部署文件

因為是空的項目,所以我們把視圖文件夾復制到部署目錄中 

目錄結構如下:




運行下面的命令測試發布的程序是否運行正常.
 
dotnet /var/aspnetcore/hellomvc/hellomvc.dll





(4) 修改Apache 網站配置文件

運行如下命令

  cd /etc/httpd/conf.d/        //定位到指定目錄

  touch hellomvc.conf      //新建名為hellomvc.conf的文件

  vi hellomvc.conf     //打開hellomvc.conf


嗯 改成這樣就可以了,.你不會不會抄吧......(我知道命令行很痛苦,所以我千辛萬苦裝了個圖形界面)




查看配置是否正常

sudo service httpd configtest




重新啟動Apache

sudo systemctl restart httpd

sudo systemctl enable httpd



OK,現在 Apache 已將位於  http://localhost:80 的請求轉發至h ttp://127.0.0.1:7000


(4) 設置 Kestrel 守護

ASP.NET Core運行在Kestrel 上,我們使用 systemd來啟動和監視Kestrel 。

創建服務定義文件

sudo nano /etc/systemd/system/kestrel-hellomvc.service

注意:   若提示  nano: command not found   則可能nano未安裝
執行  yum install nano 命令, 安裝nano后再次執行創建服務定義
文件命令.

服務定義文件內容如下:







保存該文件並啟用該服務,然后驗證它正在運行

systemctl enable kestrel-hellomvc.service

systemctl start kestrel-hellomvc.service

systemctl status kestrel-hellomvc.service






OK,讓我們運行瀏覽器



免責聲明!

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



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