前段時間寫了篇關於.net core跨平台部署的文章。https://my.oschina.net/lichaoqiang/blog/1861977
主要講述了,利用Nginx+CentOS+Supervisor+.NetCore2.1,來運行.net core程序,感興趣的朋友可以看一下。今天向大家介紹.net core使用jexus服務器的配置方法。
關於Jexus的介紹,大家可以在https://www.jexus.org/這個網站網站了解,現在的版本是V5.8.3。jexus的安裝非常簡單,按照官網的說法,只要執行以下命令就能完成jexus的安裝。
curl https://jexus.org/release/x64/install.sh|sudo sh
就是下載和執行了一個sh腳本,讓我們來看看,腳本中都寫了些什么?
#!/bin/sh /usr/jexus/jws stop >/dev/null 2>&1 cd /tmp rm -rf jexus-5.8.* >/dev/null 2>&1 wget --no-check-certificate https://linuxdot.net/down/jexus-5.8.3-x64.tar.gz tar -zxvf jexus-5.8.3-x64.tar.gz cp -rf jexus /usr/ cd /usr/jexus /usr/jexus/jws regsvr rm -rf /tmp/jexus rm -rf /tmp/jexus-5.8.* >/dev/null 2>&1 cd /usr/jexus echo 'OK, Jexus has been installed in /usr/jexus.'
打開一看,步驟非常清晰吧。
我目前使用的服務器是CentOS7.0+,首次執行jexus腳本未發生任何異常。由於我的服務器安裝了NGINX,因此,為避免端口沖突,我先關閉了Nginx進程。等安裝成功后,我們可以在/usr/jexus目錄下看到相關文件及配置信息,我們的站點配置,主要在sitconfig這個文件夾下。
默認,有個default的文件。打開看看:
###################### # Web Site: Default ######################################## port=80 root=/ /var/www/default hosts=* #OR your.com,*.your.com # addr=0.0.0.0 # CheckQuery=false NoLog=true # AppHost={CmdLine=/usr/local/x/xx;AppRoot=/usr/local/x;Port=5000} # NoFile=/index.aspx # Keep_Alive=false # UseGZIP=false # UseHttps=true # ssl.certificate=/x/xxx.crt #or pem # ssl.certificatekey=/x/xxx.key # ssl.protocol=TLSv1.0 # TLSv1.1 or TLSv1.2... # ssl.ciphers= # DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24 # AllowFrom=192.168.*.* # DenyDirs=~/cgi, ~/upfiles # indexes=myindex.aspx # rewrite=^/.+?\.(asp|php|cgi|pl|sh)$ /index.aspx # reproxy=/bbs/ http://192.168.1.112/bbs/ # host.Redirect=abc.com www.abc.com 301 # ResponseHandler.Add=myKey:myValue # Jexus php fastcgi address is '/var/run/jexus/phpsvr' ####################################################### # fastcgi.add=php|socket:/var/run/jexus/phpsvr # php-fpm listen address is '127.0.0.1:9000' ############################################ # fastcgi.add=php|tcp:127.0.0.1:9000
就是關於站點的一些配置信息。於是,我新建了一個配置文件,名為api.xxx.com的配置文件,復制default內容到該文件。根據應用情況,進行參數配置:
###################### # Web Site: api.kaola100.com ######################################## port=8018 root=/ /wwwroot/TiKu/Api hosts=* #OR your.com,*.your.com # addr=0.0.0.0 # CheckQuery=false NoLog=true AppHost={CmdLine=dotnet TiKu.Api.dll;AppRoot=/wwwroot/TiKu/Api;Port=5000} # NoFile=/index.aspx # Keep_Alive=false # UseGZIP=false # UseHttps=true # ssl.certificate=/x/xxx.crt #or pem # ssl.certificatekey=/x/xxx.key # ssl.protocol=TLSv1.0 # TLSv1.1 or TLSv1.2... # ssl.ciphers= # DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24 # AllowFrom=192.168.*.* # DenyDirs=~/cgi, ~/upfiles # indexes=myindex.aspx # rewrite=^/.+?\.(asp|php|cgi|pl|sh)$ /index.aspx # reproxy=/bbs/ http://192.168.1.112/bbs/ # host.Redirect=abc.com www.abc.com 301 # ResponseHandler.Add=myKey:myValue # Jexus php fastcgi address is '/var/run/jexus/phpsvr' ####################################################### # fastcgi.add=php|socket:/var/run/jexus/phpsvr # php-fpm listen address is '127.0.0.1:9000' ############################################ # fastcgi.add=php|tcp:127.0.0.1:9000
另外,我這台服務器上.net core環境已經安裝過了,主要配置信息如下:
port=8018 root=/ /wwwroot/TiKu/Api hosts=* #OR your.com,*.your.com # addr=0.0.0.0 # CheckQuery=false NoLog=true AppHost={CmdLine=dotnet TiKu.Api.dll;AppRoot=/wwwroot/TiKu/Api;Port=5000}
port對監聽端口進行配置,root指定當前項目的根目錄。hosts默認吧。AppHost中,指定了應用啟動執行的命令及網站根目錄、端口等。
完成以上配置,我們執行jexus啟動命令即可。
sh /usr/jexus/jws start
jexus常用命令:
Jexus包括如下操作命令(首先 cd /usr/jexus): 啟動:sudo ./jws start 停止:sudo ./jws stop 重啟:sudo ./jws restart
也可jws start后面,可以指定啟動/停止/重啟哪個站點,如:
sudo ./jws start api.xxx.com
start后面跟配置文件名即可!
執行上述操作后,我們就可以看到運行起來的.net core程序了!
關於使用jexus的好處,借用網絡上的一些話!
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,得到端口自適應的優勢。
好了,今天就寫到這里吧!