使用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

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

安裝成功:linux

三.測試Mono環境

  1.新建一個文件名爲hello.cs,內容以下:nginx

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

  2.執行命令編譯web

mcs hello.cs

  編譯成功會出現 hello.exeubuntu

  3.執行命令運行hello.exevim

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

四.安裝Jexus5.8.2

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

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 startapp

中止 /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的做者 宇內流雲 寫出這麼好用的服務器。

相關文章
相關標籤/搜索