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

上面引用自张善友的博客,原文地址为: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还不算熟悉。

CentOs7 +Jexus 5.8.2部署Asp.Net Core WebApi 1.0生产环境的更多相关文章

  1. ASP.NET Core 发布至Linux生产环境 Ubuntu 系统

    ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...

  2. 在IIS上部署Asp.Net Core 2.2.0

    1. .NET Core与Windows环境 Asp.Net Core 2.2.0 Windows 10 2. 先决条件   下载并安装.Net Core Hosting Bundle. 3. 部署过 ...

  3. Windows平台部署 Asp.Net Core 3.1.0,将 ASP.NET Core 应用发布到 IIS ,使用 IIS 在 Windows 上托管 ASP.NET Core

    第一部分:本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用. 官方文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutori ...

  4. 发布ASP.NET Core程序到Linux生产环境

    原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...

  5. 记一次使用Asp.Net Core WebApi 5.0+Dapper+Mysql+Redis+Docker的开发过程

    #前言 我可能有三年没怎么碰C#了,目前的工作是在全职搞前端,最近有时间抽空看了一下Asp.net Core,Core版本号都到了5.0了,也越来越好用了,下面将记录一下这几天以来使用Asp.Net ...

  6. LINUX 下Jexus部署ASP.NET Core WebApi

    服务器:LINUX  ubuntu16.04  开发软件:VS2015 Update3   dotnet sdk: DotNetCore.1.0.0-VS2015Tools.Preview2   1. ...

  7. Linux+Nginx+Supervisor部署ASP.NET Core实操手册

    一.课程介绍 在上一节课程<ASP.NET Core托管和部署Linux实操演练手册>中我们学过net core的部署方式多样性和灵活性.我们通过远程工具输入dotnet 程序集名称.dl ...

  8. Centos7安装jexus,部署asp.net core,asp.net mvc

    什么是Jexus 官网解释:https://www.jexus.org/ Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,Jexus Web Service,简称JWS,以支持AS ...

  9. [原]CentOS7.2最小安装环境部署Asp.NET Core笔记

    转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 写在前面的话 不知不觉在cnblogs上注册已经10多年了,看我的园龄就直接暴露了我实际年龄, ...

随机推荐

  1. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  2. 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信

    接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...

  3. [.NET] C# 知识回顾 - Event 事件

    C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...

  4. shiro权限管理框架与springmvc整合

    shiro是apache下的一个项目,和spring security类似,用于用户权限的管理‘ 但从易用性和学习成本上考虑,shiro更具优势,同时shiro支持和很多接口集成 用户及权限管理是众多 ...

  5. 如何避免git每次提交都输入密码

    在ubuntu系统中,如何避免git每次提交都输入用户名和密码?操作步聚如下:1: cd 回车: 进入当前用户目录下:2: vim .git-credentials (如果没有安装vim 用其它编辑器 ...

  6. JS继承之寄生类继承

    原型式继承 其原理就是借助原型,可以基于已有的对象创建新对象.节省了创建自定义类型这一步(虽然觉得这样没什么意义). 模型 function object(o){ function W(){ } W. ...

  7. php注册审核

    通过注册审核,判断刚创建的账户是否可以使用. 后台管理员审核通过后,账号可以使用. 通过session 设置只能通过登录入口进入网页. 原理:通过数据库设置账号的一个字段状态,例: isok:1, i ...

  8. OpenLiveWriter代码插件

    1.OpenLiveWriter安装 Windows Live Writer在2012年就停止了更新,Open Live Writer(以下简称OLW)是由Windows Live WriterWri ...

  9. 安装angular-cli

    最近在学习angular2,并尝试用这个框架来做公司的一个新项目. 终于要开始开发了,等了1个多月. 因为第一次用这个新框架做项目,不太熟悉,就找了angular-cli这个脚手架来搭建项目. 安装了 ...

  10. 【干货分享】流程DEMO-人员调动流程

    流程名: 调动 流程相关文件: 流程包.xml 流程说明: 直接导入流程包文件,即可使用本流程 表单:  流程:  图片:3.png DEMO包下载: http://files.cnblogs.com ...