使用Jexus 5.8.2在Centos下部署運行Asp.net core


這里安裝的Jexus不是獨立版本,所以需要先安裝Mono,Mono只是為了支持Jexus非獨立版本的運行,和.net core 沒有關系,使用 jexus“獨立版”,避免安裝mono的麻煩。官方網站: https://www.jexus.org/
 
系統版本:Cenos7,Mono版本:5.0.1 Stable (5.0.1.1)
 

一.添加Mono倉庫到系統

以root身份執行下面的命令:
 
yum install yum-utils
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
yum-config-manager --add-repo http://download.mono-project.com/repo/centos7/

 

二.安裝Mono

yum install mono-devel

 等待漫長的安裝過程...

安裝成功:

三.測試Mono環境

  1.新建一個文件名為hello.cs,內容如下:

using System;  
public class HelloWorld
{
     static public void Main ()
      {
          Console.WriteLine ("Hello Mono World");
      }
}

  2.執行命令編譯

mcs hello.cs

  編譯成功會出現 hello.exe

  3.執行命令運行hello.exe

  運行成功會輸出一句經典的“Hello Mono Word”!
 
  如若成功輸出,那么mono環境便安裝成功
 

四.安裝Jexus5.8.2

   1.執行下面的命令安裝jexus

cd /tmp
wget linuxdot.net/down/jexus-5.8.2.tar.gz
tar -zxvf jexus-5.8.2.tar.gz
cd jexus-5.8.2

  安裝成功會有如下提示!

 

五.檢查Jexus是否正常工作

啟動 /usr/jexus/jws start

停止 /usr/jexus/jws stop

重啟 /usr/jexus/jws restart

六.創建站點

首先得建“網站配置文件”,在/usr/jexus/siteconf中的每一個文件都是一個網站的配置文件,每一個配置文件就代表一個網站。
安裝jexus后,在/usr/jexus/siteocnf中,就已經有一個默認的網站配置文件,文件名叫“default”。
你可以修改這個配置文件,也可以將這個配置文件復制並修改為一個新站。
配置文件中,有關鍵的三項是必填項:
port:端口號定義
root:虛擬根路徑和物理根路徑的定義
hosts:域名定義
 
端口號(port)是一個整數,一般是80,也可以是65535以下的其它整數,但這個端口號必須沒有其它服務程序占用。
根路徑(root)由兩部分組成,中間用空格分開。空格前表示這個網站訪問時的虛擬根路徑(一般都是“/”),空格后是存放這個網站內容的文件夾的物理路徑(比如“/var/www/default”)。
域名(hosts),填寫訪問這個網站的域名,如果有多個域名,域名間就英文逗號分開,同時還可以用“泛域名”,比如“*.mysite.com”。
網站名:jexus把網站配置文件的名稱,作為網站名。
** 強調,網站配置文件名,不能有空格,第一個字符不能是“~”。
 
執行以下命令,創建網站目錄:
mkdir /wwwroot/test
cd /wwwroot/test
上傳網站文件到 test 目錄,然后修改jexus站點配置,這里使用默認配置 default
cd /usr/jexus/siteconf
vim defalut

修改配置如下圖:

修改完成,保存退出!
執行命令重啟jexus:
/usr/jexus/jws restart

然后輸入ip即可正常訪問,這里我傳的是一個簡單的html網頁

 

七.設置jexus自動啟動

   1.新建 jexus.service

cd /lib/systemd/system
vim jexus.service

  向文件 jexus.service 粘貼下面的內容並保存:

[Unit]
Description=jexus
After=network.target
[Service]
Type=forking
ExecStart=/usr/jexus/jws start
ExecReload=/usr/jexus/jws restart
ExecStop=/usr/jexus/jws stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

  執行命令,加入服務:

systemctl enable jexus.service

  啟動服務:

systemctl start jexus.service

  查看服務狀態:

systemctl status jexus.service

  

 

   重啟測試:

reboot

   等待重啟完成,執行命令查看服務狀態,若啟動則為設置成功!

 

 

至此,Jexus的安裝和配置全部結束了,還是很簡單的,下面為大家帶來使用Jexus運行Asp.net core程序。
 

八.安裝.net core

這里使用的是centos版本的,其他版本請查看: https://www.microsoft.com/net/download/linux
 
  1.執行命令安裝
 sudo yum install libunwind libicu

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

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

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

  

  2.驗證安裝
       (1)輸入命令  dotnet --info 可以查看信息

    (2)創建一個hello word程序來驗證

dotnet new console -o hwapp

cd hwapp

dotnet restore

dotnet run

  

  如果輸出 Hello Word!即代表.net core 安裝成功!
  上圖我使用的是另一台機子截的圖,不知道為啥 前面使用的機子無法使用dotnet new命令創建項目,提示無法找到模版,運行net core程序倒是沒問題。

九.部署asp.net core程序

  1.使用命令發布asp.net core程序
dotnet publish
  
  2.使用ftp等工具上傳至服務器
       這里我放在/wwwroot/student
 
  3.執行dotnet命令運行程序,.確保程序可以正確運行
 
 
  3.配置Jexus
cd /usr/jexus/siteconf
vim default
  配置如下圖:
主要是: AppHost={cmd=dotnet /wwwroot/student/xxxxx.dll; root=/wwwroot/student; port=5000}

AppHost的配置格式是:
AppHost={CmdLine=應用程序命令行; AppRoot=應用程序工作目錄; Port=應用程序HTTP偵聽端口},其中:
“CmdLine”表示啟動應用程序的命令行,如:dotnet /var/www/site1/app.dll;
“AppRoot”表示應用程序工作目錄,如:/var/www/site1;
“Port”表示這個HTTP應用程序所使用的偵聽端口,如:5000(Asp.Core默認端口是5000)。

例如,假設Asp.Net Core應用程序存放的路徑在“/var/www/mysite”,其啟動程序存放在該文件夾中,名稱是“webapp”,程序啟動后的偵聽端口是5000,那么,AppHost配置應為: 
AppHost={CmdLine=/var/www/mysite/webapp;AppRoot=/var/www/mysite; port=5000 }
 
  4.啟動jexus服務,並查看網站
systemctl start jexus.service

  這里演示使用的是ABP框架的asp.net zero項目

 

十.使用Jexus運行asp.net core的好處

1, 配置簡便:在Jexus上,Asp.net core只是Jexus上的一個“站點”,因此,只需在Jexus上配置這個站點就行,無需其它配置;
2, 操作統一:Jexus停止這個站點就自動停止asp.net core應用,同樣地,啟動這個站點就自動啟動對應的core應用程序,無需多頭操作;
3, 高性能:Jexus本身是一款與nginx性能相當的高性能Web服務器,而Jexus與Asp.net core之間,是TCP轉發,不是反向代理之類的HTTP轉發,沒有Http協議解析和重組的性能消耗,因此,Jexus能更好的呈現Asp.net Core的高性能優勢;
4, 端口自適應:在Jexus上,asp.net core不需要設置任何端口號,從而有效避免了多個asp.net core應用程序很可能出現的端口沖突這個讓運維人員頭疼的難題;
5, 高度可靠性:如果core應用程序意外崩潰,Jexus會立即把它拉起來,從而做到7*24不間斷運行;
6, 支持WebSocket:因為是TCP轉發,所以,對應用層協議沒有限制。
7,AppHost的port值設為0,得到端口自適應的優勢。
 
mono安裝過於麻煩,且等待時間長,使用jexus“獨立版”,避免安裝mono的麻煩。官方網站:https://www.jexus.org/
 
相關文章:

 寫完了~最后感謝jexus的作者 宇內流雲 寫出這么好用的服務器。


免責聲明!

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



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