CentOS ASP.NET Core Runtime Jexus跨平台布署
.net core 開源和跨平臺,能布署到當前主流的Windows,Linux,macOS 系統上。本篇我們將在?Linux?系統上使用 ASP.NET Core Runtime 和 Jexus 布署運行 ASP.NET Core 網站。
Linux 系統選的是?CentOS 7.4 64位
.NET Core?安裝的是?ASP.NET Core Runtime 2.1(當時最新),其實也可以安裝.NET Core?SDK,但沒有必要,運行環境?Runtime?就OK了。
Jexus 用的是 5.8(當時最新) 獨立版(自帶Mono)。Jexus?配置簡單,性能也高,我們可以達到像在Windows的IIS接管Kestrel進程一樣的體驗。不像Nginx并沒有接管Kestrel 進程,我們需要維護2個進程,增加了復雜度。下面我們開始安裝布署。
一、安裝 .NET Core
1、添加dotnet產品源
在安裝.NET之前,您需要注冊Microsoft密鑰,注冊產品存儲庫并安裝所需的依賴項。這只需要每臺機器完成一次,運行以下命令:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm2、安裝 .NET Core SDK
更新可用于安裝的產品,然后安裝.NET Core SDK,運行以下命令:
sudo yum updatesudo yum install aspnetcore-runtime-2.1
安裝完成后,在命令行輸入??dotnet --info?出現dotnet版本信息,說明裝安成功。
詳情見微軟官方文檔(https://www.microsoft.com/net/download/linux-package-manager/centos/runtime-current)。
二、布署 ASP.NET Core 網站
寫了個簡單的名叫Snai.ReadSettings的ASP.NET Core網站,輸出一句 “使用 Jexus 布署的第一個網站” 信息 ,上傳到服務器 snai.readsettings01 目錄下,用命令行進入到網站目錄,輸入?nohup dotnet Snai.ReadSettings.dll &?命令,后臺運行網站程序。nohup ... &?,為后臺運行意思。
輸入?curl http://localhost:5000?命令,出現 “使用 Jexus 布署的第一個網站”,說明.NET Core環境和網站安裝布署成功。
由于我們準備用?Jexus?來做Web服務器托管 ASP.NET Core 程序,所以我們不需要?dotnet Snai.ReadSettings.dll 這種運行方式,我們先殺掉啟動運行的網站。
輸入 ?ps -ef | grep Snai?命令,找到?dotnet Snai.ReadSettings.dll?運行的程序,本找到前面的進程ID
輸入?kill -9 32755?命令,就可以殺掉?dotnet Snai.ReadSettings.dll?運行程序,再?ps -ef | grep Snai?命令,已經找不到殺掉的程序了
三、安裝 Jexus,修改配置,啟動?Jexus 運行網站
1、安裝獨立版的Jexus,獨立版的Jexus自帶Mono,直接運行以下命令即可(需要在root身份下執行):
curl https://jexus.org/release/x64/install.sh|sudo sh
安裝成功后提示:OK, Jexus has been installed in /usr/jexus.
詳情見官方網站(https://jexus.org)。
2、修改?Jexus?配置
輸入?cd /usr/jexus/siteconf/?命令,定位到配置目錄,輸入?ls?里面有個?default 默認配置,輸入?cp?default snai.readsettings01?把默認配置復制一份,輸入?visnai.readsettings01?修改?snai.readsettings01?配置文件,修改后如下
port=80????????????????????????? ? ?#?jexus?WEB服務器偵聽端口(必填。當然可以是其它端口)
root=/ /root/www/snai.readsettings01?????????? #?網站URL根路徑(虛擬目錄)和對應的物理路徑,兩個路徑字串之間必須用空格分開(必填。既使這個網站是一個純粹的反向代理站,也得填)
hosts=*??? #OR your.com,*.your.com
重點?AppHost 配置,默認這個可能是注釋的,去掉前面#
CmdLine?運行網站的命令
AppRoot?網站的目錄
Port?端口號,不是Jexus對外服務的端口號,而是指要轉發的Asp.Net Core應用程序的端口號,如果在程序中使用了UsrUrls自定義端口則寫UsrUrls中填寫的端口(不建議使用UsrUrls自定義端口),在沒有使用UsrUrls自定義端口的情況下端口號設置為 0,Jexus會在運行時與Asp.Net Core進行"協商"具體使用的端口號,避免多個應用分配端口的麻煩和沖突的風險。
完成輸入
這里簡單說下vi編輯文件命令:
最開始輸入 a 開始修改輸入,按 esc 鍵完成輸入,:wq 保存退出,:q 不保存退出,:q!強制不保存退出
3、啟動?Jexus,運行網站
?輸入?rm default?刪掉默認配置,輸入?sh /usr/jexus/jws start?啟動?Jexus
?
Jexus常用命令,start?啟動,restart?重啟,stop 停止
啟動完成后,在瀏覽器里輸入 ip,訪問網站,顯示 “使用 Jexus 布署的第一個網站”,啟動運行成功
注:先要確保80端口是通的
4、使用?Jexus?布署運行第二個網站
?將第一個網站的輸出改為 “使用 Jexus 布署的第二個網站”,布署到?snai.readsettings02 目錄下
定位到?Jexus?的?,修改后如下
保存退出配置修改,輸入?Jexus
重啟完成后,在瀏覽器里輸入 ip:8010,訪問網站,顯示 “使用 Jexus 布署的第二個網站”;再輸入 ip ,顯示“使用 Jexus 布署的第一個網站”,二個網站啟動運行成功
?
注:先要確保8010端口是通的
到此所有布署基本完成,如果要布署第三個,第四個網站也跟第二個類似。
相關文章:
在 Centos7 用Jexus服務器 運行.Net Core 只需幾步
使用Jexus服務器運行Asp.Net Core2.0程序
Jexus~docker與它產生了暖味
原文地址:?https://www.cnblogs.com/alan-lin/p/9817331.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的CentOS ASP.NET Core Runtime Jexus跨平台布署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于gRPC服务发现与服务治理的方案
- 下一篇: ASP.NET Core SignalR