Jexus 是一款運行於 Linux 平臺,以支持 ASP.NET、PHP 爲特點的集高安全性和高性能爲一體的 WEB 服務器和反向代理服務器。最新版 5.8.2 已經發布,有以下更新:html
1,如今大部分網站已經部署HTTPS,你們對於安全愈來愈重視,順應潮流新增HTTPS多證書支持,每一個網站均可以配置本身獨立的SSL證書,如今有2種方式支持網站部署HTTPS。linux
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」git
注3:若是單獨爲網站配備SSL證書,那麼該站的hosts項填寫的域名須要與SSL證書支持的域名一致。github
2, 新增AppHost(HTTP自宿主應用程序管理器)配置項,用於對Asp.net Core、Node.js、Tomcat等自宿主應用程序的管理和高速數據轉發,爲自宿主服務程序提供了與站點操做相一致的同步管理和高可用性,爲 AppHost.Port(應用程序端口轉發)提供多端口支持。web
3,啓用FastCGI的KEEP鏈接複用機制,進一步提高了與PHP等Fast CGI處理程序間的數據交換性能。centos
4,完善WebSockets的Close方法。安全
6,新增對HTTP PATCH方法的支持。服務器
7,修復當使用Https向fastcgi、反向代理POST數據時,可能出現數據不完整的BUG。併發
8,靜態文件併發處理速度提高14%左右。app
本 版的亮點是新增「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
上面引用自張善友的博客,原文地址爲:http://www.cnblogs.com/shanyou/p/jexus582.html
怎麼安裝.net runtime就不介紹了 官網都有地址:https://www.microsoft.com/net/core#linuxcentos
安裝jexus5.8.2獨立版(推薦)
cd /tmp wget linuxdot.net/down/jexus-5.8.2-x64.tar.gz #下載程序 據做者說以後會有5.8.2.1,5.8.2.1裏面日誌使能夠選擇不配置的。 tar zxvf jexus-5.8.2-x64.tar.gz #解壓
sudo mv jexus /usr #移動至usr下 cd /usr/jexus/ cd siteconf/ vi default #編輯文件
修改成以下內容:
###################### # Web Site: Default ######################################## port=80 root=/ /var/www/default hosts=* #OR your.com,*.your.com AppHost={
CmdLine=dotnet /var/www/wechat/Elisoft.PMForWechat.Web.dll;
AppRoot=/var/www/wechat;
Port=5000;
OutLog=/tmp/wechatout.log;
ErrLog=/tmp/wechaterr.log;
} NoLog=false
補充一點:root中的路徑千萬千萬千萬不要和工做路徑(AppRoot)一致,否則打死也打不開。建議做爲轉發web時root設置個不存在的路徑。
格式:AppHost={CmdLine=命行行; AppRoot=工做路徑; Port=端口號}
說明:CmdLine:必選項。表示啓動這個web應用程序的命令(含參數),如 CmdLine= dotnet /var/www/wechat/Elisoft.PMForWechat.Web.dll
AppRoot:必選項。表示這個應用程序的工做目錄,如:AppRoot=/var/www/wechat
Port:可選項。表示這個應用程序的偵聽端口,多個端口用英文逗號分隔(注:若是沒有填寫這一項,就請在AppHost.port或reproxy中填寫端口號,不然,請求數據沒法轉發給應用程序)。
Env:可選參數。表示這個應用程序工做時須要的環境變量,如 env=(PATH=/usr/local/bin:/var/www/aspnetcore:$PATH),多個設置用英文逗號分開。
ErrLog:必選(保證路徑存在)。表示將這個應用程序的異常輸出重定向到指定的文件(需填寫完整路徑),若是不原意輸出日誌,能夠不用OutLog項。這時, jexus會自動關掉控制檯輸出(實質是重定向到/dev/null中了);
OutLog:必選(保證路徑存在)。表示將這個應用程序的控制檯輸出重定向到指定的文件(需填寫完整路徑);
User: 可選項。以指定的用戶身份運行該應用程序,默認爲root身份。
在5.8.2.1及以後版本中ErrLog和OutLog爲可選項。
注意:
1,AppHost像AppHost.Port同樣,不支持虛擬路徑;
2,AppHost功能是將指定的具備http服務能力的web應用程序歸入jexus工做進程進行管理,對Asp.Net Core或Node.js等自宿主web程序用於生產環境具備重要的意義。
配置jexus開機自啓動:
在/lib/systemd/system 下建立文件jexus.service
vi jexus.service
添加內容以下:
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
Description:描述服務
After:描述服務類別
[Service]服務運行參數的設置
Type=forking是後臺運行的形式
ExecStart爲服務的具體運行命令
ExecReload爲重啓命令
ExecStop爲中止命令
PrivateTmp=True表示給服務分配獨立的臨時空間
[Install]服務安裝的相關設置,可設置爲多用戶
修改時注意服務的路徑
p: 你也能夠從/lib/systemd/system 文件夾下複製一個service結尾的文件,更名後修改裏面的內容。
修改後 chmod 754 jexus.service 設置權限
systemctl enable jexus.service 加入到服務中去
而後就能夠暢快的使用服務命令去開啓、中止、重啓 jexus了。
好了reboot 看看效果吧
網上的方法我試了很差使,多是我用的方法不對。linux還不算熟悉。