1. 程式人生 > >在Linux環境下使用Apache部署ASP.NET Core

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

tgt tab dot sce aaa target 部署 AI startup

在前幾篇文章中我們一起探討了如何在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,讓我們運行瀏覽器


技術分享圖片

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