CentOS ASP.NET Core Runtime Jexus跨平臺佈署

.net core 開源和跨平臺,能佈署到當前主流的WindowsLinuxmacOS 系統上。本篇咱們將在 Linux 系統上使用 ASP.NET Core Runtime 和 Jexus 佈署運行 ASP.NET Core 網站。linux

Linux 系統選的是 CentOS 7.4 64位
centos

.NET Core 安裝的是 ASP.NET Core Runtime 2.1(當時最新),其實也能夠安裝.NET Core SDK,但沒有必要,運行環境 Runtime 就OK了。瀏覽器

Jexus 用的是 5.8(當時最新) 獨立版(自帶Mono)Jexus 配置簡單,性能也高,咱們能夠達到像在Windows的IIS接管Kestrel進程同樣體驗。不像Nginx並無接管Kestrel 進程,咱們須要維護2個進程,增長了複雜度。下面咱們開始安裝佈署。服務器

1、安裝 .NET Corecurl

一、添加dotnet產品源性能

在安裝.NET以前,您須要註冊Microsoft密鑰,註冊產品存儲庫並安裝所需的依賴項。這隻須要每臺機器完成一次,運行如下命令:網站

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

二、安裝 .NET Core SDKurl

更新可用於安裝的產品,而後安裝.NET Core SDK,運行如下命令:spa

sudo yum update 
sudo yum install aspnetcore-runtime-2.1

安裝完成後,在命令行輸入  dotnet --info 出現dotnet版本信息,說明裝安成功。.net

詳情見微軟官方文檔(https://www.microsoft.com/net/download/linux-package-manager/centos/runtime-current)。

2、佈署 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 命令,已經找不到殺掉的程序了

3、安裝 Jexus,修改配置,啓動 Jexus 運行網站

一、安裝獨立版的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)。

二、修改 Jexus 配置

輸入 cd /usr/jexus/siteconf/ 命令,定位到配置目錄,輸入 ls 裏面有個 default 默認配置,輸入 cp default snai.readsettings01 把默認配置複製一份,輸入 vi snai.readsettings01 修改 snai.readsettings01 配置文件,修改後以下

######################
# Web Site: snai.readsettings01
########################################

port=80
root=/ /root/www/snai.readsettings01
hosts=*    #OR your.com,*.your.com


# addr=0.0.0.0
# CheckQuery=false
NoLog=true
AppHost={CmdLine=dotnet /root/www/snai.readsettings01/Snai.ReadSettings.dll;AppRoot=/root/www/snai.readsettings01;Port=0}

port=80                                      # jexus WEB服務器偵聽端口(必填。固然能夠是其它端口)
root=/ /root/www/snai.readsettings01           # 網站URL根路徑(虛擬目錄)和對應的物理路徑,兩個路徑字串之間必須用空格分開(必填。既使這個網站是一個純粹的反向代理站,也得填)

hosts=*    #OR your.com,*.your.com          # 綁定的域名,因爲我沒有域名,用ip訪問,就輸入*

重點 AppHost 配置,默認這個多是註釋的,去掉前面#

CmdLine 運行網站的命令

AppRoot 網站的目錄

Port 端口號,不是Jexus對外服務的端口號,而是指要轉發的Asp.Net Core應用程序的端口號,若是在程序中使用了UsrUrls自定義端口則寫UsrUrls中填寫的端口(不建議使用UsrUrls自定義端口)在沒有使用UsrUrls自定義端口的狀況下端口號設置爲 0,Jexus會在運行時與Asp.Net Core進行"協商"具體使用的端口號,避免多個應用分配端口的麻煩和衝突的風險。

配置完成 按 esc 鍵完成輸入,輸入 :wq 保存退出。

這裏簡單說下vi編輯文件命令:

最開始輸入 a 開始修改輸入,按 esc 鍵完成輸入,:wq 保存退出,:q 不保存退出,:q!強制不保存退出

三、啓動 Jexus,運行網站

 輸入 rm default 刪掉默認配置,輸入 sh /usr/jexus/jws start 啓動 Jexus

 

Jexus經常使用命令,start 啓動restart 重啓,stop 中止

啓動完成後,在瀏覽器裏輸入 ip,訪問網站,顯示 「使用 Jexus 佈署的第一個網站」,啓動運行成功

注:先要確保80端口是通的

四、使用 Jexus 佈署運行第二個網站

 將第一個網站的輸出改成 「使用 Jexus 佈署的第二個網站」,佈署到 snai.readsettings02 目錄下

定位到 Jexus siteconf 目錄,輸入 cp snai.readsettings01 snai.readsettings02,複製配置,修改 snai.readsettings02 配置,修改後以下

######################
# Web Site: snai.readsettings02
########################################

port=8010
root=/ /root/www/snai.readsettings02
hosts=*    #OR your.com,*.your.com


# addr=0.0.0.0
# CheckQuery=false
NoLog=true
AppHost={CmdLine=dotnet /root/www/snai.readsettings02/Snai.ReadSettings.dll;AppRoot=/root/www/snai.readsettings02;Port=0}

 保存退出配置修改,輸入 sh /usr/jexus/jws restart 重啓 Jexus

重啓完成後,在瀏覽器裏輸入 ip:8010,訪問網站,顯示 「使用 Jexus 佈署的第個網站」;再輸入 ip ,顯示「使用 Jexus 佈署的第一個網站」,二個網站啓動運行成功

 

注:先要確保8010端口是通的

到此全部佈署基本完成,若是要佈署第三個,第四個網站也跟第二個相似。

相關文章
相關標籤/搜索