Centos7安装jexus,部署asp.net core,asp.net mvc 什么是Jexus 创建网站 jexus部署asp.net MVC jexus部署asp.net core 设置jexus开机自动启动  jexus配置方法两种 关于验证码 jexus多网站配置 Jexus 更新步骤

 转载于https://www.cnblogs.com/nsky/p/10386460.html

官网解释:https://www.jexus.org/

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤
    Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,Jexus Web Service,简称JWS,以支持ASP.NET、ASP.NET CORE、PHP为特色,
同时具备反向代理、入侵检测等重要功能。可以这样说,Jexus是.NET、.NET CORE跨平台的最优秀的宿主服务器,
如果我们认为它是Linux平台的IIS,这并不为过,因为,Jexus不但非常快,而且拥有IIS和其它Web服务器所不具备的高度的安全性,
这是*机构和重要企业对web服务器最必要也是最重要的品质需求。

1)支持多站点,同一端口可以同时支持任何多的asp.net core应用程序;
2)应用程序启动、停止、重启与站点的启动、停止、重启等操作一致,无需手工管理asp.net core应用程序;
3)具有应用程序崩溃后自动重启功能,为企业级不间断运行保障;
4)具有比反向代理更高的性能优势。
5)提供与IIS相同的HTTP环境参数。
Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

  Jexus独立版(专业版)的安装自带mono。也就是说只要安装jexus即可,不用单独安装mono,其实他是把mono一起打包在jexus中了

但该版本只支持64位Linux操作系统,我安装的centos7系统刚好满足要求

输入命令: uname -r 

 Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

 这里的.x86_64跟x86是有区别的,.x86_64其实是32位像64位的一个过渡

具体:https://www.cnblogs.com/Totems/p/3198287.html

安装jexus独立版的命令是:注:运行安装命令,需要操作者有root权限。

 curl https://jexus.org/release/x64/install.sh|sudo sh 

输入命令回车:可以看到他会去下载文件:https://linuxdot.net/down/jexus-5.8.3-x64.tar.gz

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

下载完成并保存后,就会执行一系列的解压操作,可以看到压缩包里面包含mono,所以不用单独安装了

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

最后提示操作ok

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

切换到jexus,从上面标记的图片中可以看到jexus路径在: /usr/jexus 

然后启动: sudo ./jws start 

 Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

如果访问不成功,判断80端口是否开启

查看80端口是否开启
1
firewall-cmd --query-port=80/tcp

 开启80端口

1
firewall-cmd --add-port=80/tcp --permanent

 关闭80端口

1
firewall-cmd --remove-port=80/tcp --permanent   # --permanent 永久生效,没有此参数重启后失效

firewall-cmd --list-ports #查看已开放的端口
firewall-cmd reboot # 重启防火墙,端口立即生效,不需要重启电脑

修改时间:

timedatectl set-timezone Asia/Shanghai 

然后重启才能生效

重启电脑相关命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
shutdown -h 10          #计算机将于10分钟后关闭,且会显示在登录用户的当前屏幕中
  
 shutdown -h now       #计算机会立刻关机
  
shutdown -h 22:22     #计算机会在这个时刻关机
  
shutdown -r now        #计算机会立刻重启
  
shutdown -r +10         #计算机会将于10分钟后重启
 
reboot                     #重启
  
halt                         #关机

 然后输入CentOS7的ip地址访问,如果出现这个404的异常页面,说明jexus启动成功了

之所以会异常,由于jexus的默认的网站配置文件指向的物理路径是 /var/www/default 

这里注意下,网站必须放在 /var/www/ 下,不能是其他目录

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

直接cd 进入,发现没有这个路径,只有var文件夹,

安装jexus后,配置文件在 /usr/jexus/siteconf/default 

 cat default 可以查看default的内容

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

我们在/var下创建www文件夹,在www下创建default文件夹。创建完成后,进入 default文件夹,用vim编写一个简单的 index.html

可以递归创建文件夹: mkdir -p www/default 

 这样就创建了www和default文件夹,

进入到default创建index.html 文件: touch index.html 

 编辑: vim index.html 单击 i切换到输入状态,编辑完成后(我这里输入了:Hello Jexus),单击Esc键,输入:wq回车退出

vim相关命令:

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤
按ESC键 跳到命令模式,然后:

:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
:q 不保存文件,退出vi 在没有进入insert状态的时候
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

 刚上面启动了jexus是没有关掉的,你可以先stop然后在start,当然你也可以直接restart,

 sudo /usr/jexus/jws restart 

 Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

再次访问就成功了

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

jexus启动,停止命令,如果不是在jexus目录的时候,可以这样

启动:sudo /usr/jexus/jws start
停止:sudo /usr/jexus/jws stop
重启:sudo /usr/jexus/jws restart
重启指定网站:sudo /usr/jexus/jws restart siteName
停止指定网站:sudo /usr/jexus/jws stop siteName

如果进入了jexus目录可以直接这样:

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤
启动:sudo ./jws start

重启:sudo ./jws restart

停止:sudo ./jws stop

启动某个网站: sudo start 网站名

重启某个网站:sudo restart 网站名

停止某个网站:sudo stop 网站名
Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

创建网站

jexus的网站配置文件在路径: /usr/jexus/siteconf 下,siteconf中的每一个文件都是一个网站配置文件

安装jexus后,在/usr/jexus/siteocnf中,就已经有一个默认的网站配置文件,文件名叫“default”。

你可以修改这个配置文件,也可以将这个配置文件复制并修改为一个新站。
配置文件中,有关键的三项是必填项:
port:端口号定义
root:虚拟根路径和物理根路径的定义
hosts:域名定义

端口号(port)是一个整数,一般是80,也可以是65535以下的其它整数,但这个端口号必须没有其它服务程序占用。
根路径(root)由两部分组成,中间用空格分开。空格前表示这个网站访问时的虚拟根路径(一般都是“/”),空格后是存放这个网站内容的文件夹的物理路径(比如“/var/www/default”)。

这个 “/” 也可以写成 root=/cnblogs /var/www/default  但访问的时候必须是 192.168.1.1/cnblogs 或者www.abc.com/cnblogs

域名(hosts),填写访问这个网站的域名,如果有多个域名,域名间就英文逗号分开,同时还可以用“泛域名”,比如“*.mysite.com”。
网站名:jexus把网站配置文件的名称,作为网站名。
** 强调,网站配置文件名,不能有空格,第一个字符不能是“~”。

我们可以多创建几个网站,把siteconf下的default复制一份

切换到siteconf,执行命令: cp -b default myCore 

修改root和hosts可以看到hosts绑定了3个域名,分别用 ","分割

创建root对应的文件下的网站 /var/www/myCore

至于内容,可以先用一个静态页面index.html

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

default网站默认不变:

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

重启Jexus(注意,所有的配置,在配置之后都需要重启Jexus)

然后在电脑绑定host

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

输入192.168.1.101访问的是默认的default站点

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

输入www.abc.com,www.cde.com,www.nsky.com访问的是myCore站点

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

 Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

说明jexus配置正确

jexus部署asp.net MVC

创建项目,新增jexus网站配置文件,以及上传这里就不说了

所有准备工作好了。只要简单的修改root和hosts

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

输入域名后出现了熟悉而传统的界面:

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

jexus部署asp.net core

centos7 安装net core 可以看:https://www.cnblogs.com/nsky/p/10381200.html

新建一个默认的mvc core项目,本地运行效果

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

发布:或者通过命令:dotnet publish -o f:publish

不用跨平台命令发布centos7

dotnet pulish  --r centos.7-x64 --c release

dotnet pulish  --runtime centos.7-x64 --configuration release

其实在下面图片中的目标运行时也可以选择则,自己可以去尝试

这里:

部署模式选择:框架依赖,(不用选择独立发布:dotnet publish -c Release --self-contained)

目标运行时选择:可移植

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

发布后的文件:


Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

上传到CentOS上后可以dotnet自宿主试下,可以排错,证明core程序是正常的

没问题后,这个程序可以关掉了

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

同样的添加配置文件,上传代码,修改配置文件:

针对于Net core程序,需要修改AppHost配置 参考:https://www.cnblogs.com/shanyou/p/6107248.html

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤
AppHost的配置格式是:
AppHost={CmdLine=应用程序命令行; AppRoot=应用程序工作目录; Port=应用程序HTTP侦听端口},其中:
“CmdLine”表示启动应用程序的命令行,如:dotnet /var/www/site1/app.dll;
“AppRoot”表示应用程序工作目录,如:/var/www/site1;
“Port”表示这个HTTP应用程序所使用的侦听端口,如:5000(Asp.Core默认端口是5000)。
没有通过UseUrls指定端口,那么默认就是5000,所以这里可以写0即可,这是jexus和net core约定好了的

格式: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程序用于生产环境具有重要的意义。

# Asp.Net Core应用程序所使用的端口号,如果在程序中使用了UsrUrls自定义端口则使用UsrUrls中填写的端口(不建议使用UsrUrls自定义端口),
在没有使用UsrUrls自定义端口的情况下端口号设置为 0,
Jexus会在运行时与Asp.Net Core进行"协商"具体使用的端口号,避免多个应用分配端口的麻烦和冲突的风险。

例如,比如我Asp.Net Core应用程序存放的路径在“/var/www/CoreDemo”,其启动程序存放在该文件夹中,名称是“core.dll”,程序启动后的侦听端口是5000,
那么,AppHost配置应为:
AppHost={CmdLine=dotnet /var/www/CoreDemo/core.dll;AppRoot=/var/www/CoreDemo;Port=0}

jexus反代,会把访问者的IP地址记录在HTTP头的 X-Forwarded-For 和 X-Real-IP 两个头域中
(后者只记录最近的一个IP,前者不但记录最后的IP,也会继承上一个代理服务器传过来的IP)
,所以,你从Request中,就能得到访问者 的IP地址。
Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

配置好后重启jexus,还有就是发布了项目后,也需要重启jexus,如果AppHost.Port填写的是5000,那么对输入ip会跳转到

https://ip:5001,这个大家应该在本地是试过的,因为net core默认是支持https的,但jexus默认没有配置https所以会异常,

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

我这里AppHost.Port写成0,也不能用https访问,因为没有证书

http访问,提示不安全。但是能访问到的

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

通过F12查看当前程序的Server,确确实实是Jexus

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

换成https显然是不行的,具体怎么配置https:https://www.cnblogs.com/jjg0519/p/8572202.html

官方文档关于jexus配置https说明:https://www.linuxdot.net/bbsfile-2970

https://www.linuxdot.net/bbsfile-3125

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤 View Code

最终core的配置文件是:

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

 这里CmdLine 可以简写: AppHost={CmdLine=dotnet core.dll;AppRoot=/var/www/CoreDemo;Port=0} 

因为root已经指定了全路径

设置jexus开机自动启动

如果服务器重启,必须手动启动jexus,所以应该创建一个服务,通过服务启动jexus

1.新建 jexus.service

cd /lib/systemd/system
vim jexus.service

添加如下命令并保存

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤
[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
Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

执行命令,加入服务: systemctl enable jexus.service 

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

 启动服务: systemctl start jexus.service 

查看服务状态: systemctl status jexus.service 

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

 重启测试:输入命令: rebootCentOS会重启,然后再次看服务状态,是否启动,输入ip能否访问成功,都成功的话,说明开机启动成功

 jexus配置方法两种

1:端口转发,从5.8.2开始支持,上面配置的AppHost就是端口转发

2:反向代理:reproxy模块,使用代理就能实现负载均衡

端口转发的原理:收集于网络

关于端口转发模式下获取访问者IP地址的问题,目前5.8.1还不支持,从5.8.2开始,可以从请求的Http头中的“X-Real-IP”获取对方IP地址。

参考:https://www.cnblogs.com/stulzq/p/7344129.html

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤 View Code

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

  一,关于负载均衡:
    用jexus的reproxy(反向代理)功能,就能实现负载均衡。例如,你有三台服务器,其中一台IP地址是 1.1.1.1是负载均衡服务器,用于对外服务,对内分发工作负载,另外两台是工作服务器,IP地址分别为 2.2.2.1、2.2.2.2,工作端口是8088。那么,你在 1.1.1.1这台服务器上安装上jexus,并在网站配置文件上作如下配置就行:
    reproxy=/  2.2.2.1:8088, 2.2.2.2:8088

      利用Jexus的“多目标反向代理”功能,我们很容易实现多服务器的负载均衡,构成一个WEB服务器集群,大大提高网站的负载能力。 Jexus反向代理有一个特点:如果前端服务器本地网站中有内容,它就会直接使用前端服务器的本地内容,而不会将请求发送给后端服务器。
      据我们所知,对于网站,一个ASPX网页上常常会含有图片、JS、CSS等大量的静态文件,其比例甚至可以达到一比三十或更多,因此,如果你希望为静态文件提供更快的反应速度,你只需要把静态文件放到前端服务器对应网站的对应文件夹下就行。

Jexus的反代很灵活,既可以以文件夹为单位对某个单一目标进行反代,也可以整站反代,关键是看你怎么设置。   
比如:如果目标网站是: http://a.b.com/    
那么,你就可以设:    reproxy=/ http://a.b.com/    
这就是整站。甚至还可以把一个整站作为你的一个虚拟路径:    
如:    reproxy=/blog/ http://blog.xy.com/

    二,关于Session同步:
    同步的方法很多,对于asp.net而言,你可以将两台工作服务器的session配置成同一台state server上,比如上例中,你可以把1.1.1.1作公用的state server;另外还有一个更省力的方法,是利用jexus反向代理的Index关键字,把相同IP地址的请求转发到同一台服务器上,这时配置如下:
    reproxy=/ 2.2.2.1:8088, 2.2.2.2:8088 |Index=ip

默认情况下,Jexus web server是以单进程模式运行的,当修改jws.config配置文件,把httpd.processes的值设置为大于1的数字时,JWS就会按指定的数量以多进程的方式并行工作。
    Jexus多进程并行工作,可以更充分地利用多CPU的性能优势,提高大并发负载能力和处理速度,同时,多进程并行,也是高可用性服务的必然需求。

详情: https://www.linuxdot.net/bbsfile-3301
    多进程时,需要特别注意如下两个方面:
    1、 不要将Session保存在进程内,即web.config中的sessionState不能配置为Inproc,应该使用同一台 Session state服务器对session信息进行保存。如:可以配置为 “<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="20" /& gt;”。
    2、需要配置machineKey。Jexus多进程并行时,相于当多主机群集工作,因此,必须在Web.Config文件中 配置machineKey。如果没有这个设置,网站就会出现诸如数据“无法验证的错误”之类的问题。下面是一个machineKey的参考配置:
<machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/> 
    注:Jexus自带State服务,如果没有其它需求,一般不需要再配置配置其它的状态服务器。

注意:
     多台服务器同时为同一个网站提供服务,存在着一个session同步的部题。在Jexus上同步session很方便:你只需要把每个网站的State服务器IP地址指向同一台服务器IP地址就行。具体方法是,修改网站的web.config,在system.web节中加入:
<sessionState mode="StateServer" stateConnectionString="tcpip=x.x.x.x:42424" timeout="60" />

Jexus对State服务器的控制能力比较强,一旦State服务器的服务程序崩溃退出,Jws就会在10秒之内自动重启它,所以,就机制而言,其稳定性是很高的,一般不会出现问题

CentOS上的网站是这个

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

 然后我在本地部署一个网站作为工作服务器

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

现在我在工作服务器访问CentOS让jexus又代理回,调用我的工作服务器的站点

注意:端口转发和代理只能用一个,所以这里先注释掉端口转发,配置代理

为了测试负载,所以我配置了2个域名,我特意找的这个是没有https的。

要不然代理过去跳转到了htts,没有证书访问不了

本来想在本地多部署几个,但centos要开通端口才能访问

reproxy=/ 192.168.1.102,www.xinhuanet.com

配置好后,重启jexus,然后多刷新几次,就会在我配置的这两个域名之间切换,达到负载的目的了

可以看到ip地址没有变的,但显示的内容变了,一个是我本地的Demo,一个是新华网,当然我这里只是测试,正式环境肯定都是同一个网站

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

关于验证码

windows是可以获取自定义字体的,比如IIS服务器没有字体,可以把字体放到项目中,然后代码加载即可

但在Linxu是不行的,必须安装。

  在/usr/share/fonts创建一个文件夹,比如:myfonts  在windos中把需要的在字体拷贝到该文件夹下(不一定是这个目录。只是便于管理,统一放在fonts文件夹下)

cd进入该目录。执行命令:

fc-cache -fv

如果提示:-bash: fc-cache: command not found

则yum安装即可:yum install fontconfig

安装完成,刷新网站即成功

参考:https://javawind.net/p130?date=2013-7-1

  https://www.cnblogs.com/24la/p/linuxcsharp-validcode-show.html

jexus多网站配置

其实跟着上面下来,已经配置了多个网站,除了core网站是IP其他3个都指定了hosts,可以看到有4个网站配置文件

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

我本地也通过host绑定了域名,测试也都成功了。这里就不截图演示了

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤

Jexus 更新步骤

1,停止jws,并把 /usr/jexus 这个旧的文件夹更名备份
2,以 root 身份用下边这个命令新装jexus(如不是root登录,可以用 sudo -s 命令切换成root身份):
    独立版安装命令:curl https://jexus.org/release/x64/install.sh|sh
    通用版安装命令:curl https://jexus.org/release/install | sh
3,从备份的jexus文件夹的siteconf文件夹中把过去的配置文件复制到/usr/jexus的对应文件夹中;
4,把其它自己添加的东西,比如证书之类的从备份文件夹复制到对应位置;
5,试运行,正常后,把备份文件夹删除。


其实就三步:
更名备份
重新安装
恢复配置

 其实jexus远远不止我列出的这点,还有很多东西需要研究,暂时就不写了

最后把CoreDemo的配置文件放出来,供大家参考

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤 View Code

官网论坛配置说明:https://www.linuxdot.net/bbsfile-3084

收集一些jexus配置

Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus
创建网站
jexus部署asp.net MVC
jexus部署asp.net core
设置jexus开机自动启动
 jexus配置方法两种
关于验证码
jexus多网站配置
Jexus 更新步骤 View Code

学习过程中也参照了很多大神们写的文章

张善友:

  http://www.cnblogs.com/shanyou/p/jexus582.html

  https://www.cnblogs.com/shanyou/p/6107248.html

  https://www.cnblogs.com/shanyou/p/5518152.html

https://www.cnblogs.com/shanyou/p/5518152.html

 http://www.cnblogs.com/staneee/p/6852559.html

https://www.cnblogs.com/stulzq/p/7324616.html

https://www.cnblogs.com/jackytang/p/9111902.html

高级配置:

https://www.cnblogs.com/msdynax/p/3735344.html

https://www.cnblogs.com/savorboard/p/dot-net-linux-jexus.html

https://www.cnblogs.com/shanyou/p/6107248.html

配置https服务:https://www.cnblogs.com/CKExp/p/8469831.html#3911195