這裡安裝的Jexus不是獨立版本,是以需要先安裝Mono,Mono隻是為了支援Jexus非獨立版本的運作,和.net core 沒有關系,使用jexus“獨立版”,避免安裝mono的麻煩。官方網站:https://www.jexus.org/
系統版本:Cenos7,Mono版本:5.0.1 Stable (5.0.1.1)
Mono官方doc:http://www.mono-project.com/download/#download-lin-centos
一.添加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把網站配置檔案的名稱,作為網站名。
** 強調,網站配置檔案名,不能有空格,第一個字元不能是“~”。
詳細說明:https://www.linuxdot.net/bbsfile-3500
執行以下指令,建立網站目錄:
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 }
更多請檢視:http://www.cnblogs.com/yunei/p/5662642.html
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/
相關文章:
http://www.cnblogs.com/yunei/p/5662642.html
http://www.cnblogs.com/yunei/p/6077879.html
http://www.cnblogs.com/yunei/p/6215219.html
寫完了~最後感謝jexus的作者 宇内流雲 寫出這麼好用的伺服器。