程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Jexus 5.8.2 正式發布為Asp.Net Core進入生產環境提供平台支持,jexus5.8.2

Jexus 5.8.2 正式發布為Asp.Net Core進入生產環境提供平台支持,jexus5.8.2

編輯:關於.NET

Jexus 5.8.2 正式發布為Asp.Net Core進入生產環境提供平台支持,jexus5.8.2


Jexus 是一款運行於 Linux 平台,以支持  ASP.NET、PHP 為特色的集高安全性和高性能為一體的 WEB 服務器和反向代理服務器。最新版 5.8.2 已經發布,有如下更新:

1,現在大部分網站已經部署HTTPS,大家對於安全越來越重視,順應潮流新增HTTPS多證書支持,每個網站都可以配置自己獨立的SSL證書,現在有2種方式支持網站部署HTTPS。

   A、添加全服務器使用的SSL配置:如果需要,可以添加一個ssl配置為所有沒有單獨配置ssl的網站提供共享,這個配置,對支持泛域名的證書提供了方便。
     方法是,修改jws.conf中的“CertificateFile”和“CertificateKeyFile”項,分別填寫證書文件和私鑰文件(絕對路徑)。
   B、為指定的網站添加SSL配置:方法是修改網站配置文件,分別為“ssl.certificate”和“ssl.certificatekey”條目填寫證書文件和私鑰文件(絕對路徑)。
注1:網站啟用https,port必須設為443,並且UseHttps的值設為true。
注2:Jexus Https需要名為libssl的函數庫支持,如果你服務器沒有libss.so.xxx文件,需要安裝openssl。
     對於通用版,把libssl注冊到 /usr/etc/mono/config中,即向這個文件添加一行(假設libssl的文件名是"libssl.so.1.0.0"):
     “<dllmap dll="libssl" target="/lib/x86_64-linux-gnu/libssl.so.1.0.0" />”
     對於獨立版,只需要把libssl軟連到 jexus的runtime/lib文件夾中就行,如:
     “sudo ln -s //lib/x86_64-linux-gnu/libssl.so.1.0.0  /usr/jexus/runtime/lib/libssl.so”

注3:如果單獨為網站配備SSL證書,那麼該站的hosts項填寫的域名需要與SSL證書支持的域名一致。

2,新增AppHost(HTTP自宿主應用程序管理器)配置項,用於對Asp.net Core、Node.js、Tomcat等自宿主應用程序的管理和高速數據轉發,為自宿主服務程序提供了與站點操作相一致的同步管理和高可用性,為AppHost.Port(應用程序端口轉發)提供多端口支持。

3,啟用FastCGI的KEEP連接復用機制,進一步提升了與PHP等Fast CGI處理程序間的數據交換性能。

4,完善WebSockets的Close方法。

6,新增對HTTP PATCH方法的支持。

7,修復當使用Https向fastcgi、反向代理POST數據時,可能出現數據不完整的BUG。

8,靜態文件並發處理速度提升14%左右。

本版的亮點是新增“AppHost”配置項,將HTTP自宿主應用程序(如Asp.net Core應用程序、Node.js應用程序等)統一納入Jexus的工作進程序列進行管控(啟動、停止、重啟、崩潰後自動恢復等管理、監控功能),為Asp.Net Core應用程序進入企業化生產環境提供了強有力的平台保障。使用 jexus整合asp.net core的優點:

      1)支持多站點,同一端口可以同時支持任何多的asp.net core應用程序;
      2)應用程序啟動、停止、重啟與站點的啟動、停止、重啟等操作一致,無需手工管理asp.net core應用程序;
      3)具有應用程序崩潰後自動重啟功能,為企業級不間斷運行保障;
      4)具有比反向代理更高的性能優勢。

      5)提供與IIS相同的HTTP環境參數。

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 }

下面我們實例介紹下Centos 配置ASP.Net Core+ Jexus 運行環境

用Visual Studio 2015 Update 3安裝.net core 1.1 ,創建一個asp.net core項目,我的代碼放在https://github.com/geffzhang/AspNetCoreStarted 

安裝jexus5.8.2獨立版(推薦)

cd /tmp
wget linuxdot.net/down/jexus-5.8.2-x64.tar.gz
tar zxvf jexus-5.8.2-x64.tar.gz
cd jexus/
cd siteconf/
vi default
 
添加AppHost

格式:AppHost={CmdLine=命行行; AppRoot=工作路徑; Port=端口號}
說明:CmdLine:必選項。表示啟動這個web應用程序的命令(含參數),如 CmdLine= dotnet /var/www/aspnetcore/AspNetCoreStarted.dll
       AppRoot:必選項。表示這個應用程序的工作目錄,如:AppRoot=/var/www/aspnetcore
       Port:可選項。表示這個應用程序的偵聽端口,多個端口用英文逗號分隔(注:如果沒有填寫這一項,就請在AppHost.port或reproxy中填寫端口號,否則,請求數據無法轉發給應用程序)。
       Env:可選參數。表示這個應用程序工作時需要的環境變量,如 env=(PATH=/usr/local/bin:/var/www/aspnetcore:$PATH),多個設置用英文逗號分開。
       ErrLog:可選項。表示將這個應用程序的異常輸出重定向到指定的文件(需填寫完整路徑),如果不原意輸出日志,可以不用OutLog項。這時, jexus會自動關掉控制台輸出(實質是重定向到/dev/null中了);
       OutLog:可選項。表示將這個應用程序的控制台輸出重定向到指定的文件(需填寫完整路徑);
       User: 可選項。以指定的用戶身份運行該應用程序,默認為root身份。
注意:
   1,AppHost像AppHost.Port一樣,不支持虛擬路徑;
   2,AppHost功能是將指定的具有http服務能力的web應用程序納入jexus工作進程進行管理,對Asp.Net Core或Node.js等自宿主web程序用於生產環境具有重要的意義。

在Jexus 接管之前試試,確保應用在服務器上運行正常


啟動jexus 服務接管應用的管理

cd /usr/jexus

./jws start

用浏覽器訪問下我們的網站 http://52.175.35.6/ :

我們檢查下/tmp 目錄下的日志輸出:

已經生成了我們所要的日志:

OutLog輸出的日志很多呀。產品運營環境用的時候,應該把日志級別提高到err級,這樣會少很多記錄,而且不影響速度,少不產生日志會大大提升性能。日志的等級可以這麼設置:

我們再來看看Jexus 和 asp.net core的進程

上圖可以看到的確已經是jexus監控下的子進程了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved