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

    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环境参数。

 

 

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

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

输入命令: uname -r 

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

 这里的.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

 

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

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

最后提示操作ok

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

 

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

然后启动: sudo ./jws start 

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

 

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

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

 开启80端口

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

 关闭80端口

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

 

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

 

修改时间:

timedatectl set-timezone Asia/Shanghai 

然后重启才能生效

 

重启电脑相关命令:

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

 

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

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

 cat default  可以查看default的内容

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

 

 

我们在/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相关命令:

按ESC键 跳到命令模式,然后:

:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
:q 不保存文件,退出vi 在没有进入insert状态的时候
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑

 

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

 sudo /usr/jexus/jws restart 

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

再次访问就成功了

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

 

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目录可以直接这样:

启动:sudo ./jws start

重启:sudo ./jws restart

停止:sudo ./jws stop

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

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

停止某个网站:sudo stop 网站名

 

创建网站

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

 

default网站默认不变:

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

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

然后在电脑绑定host

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

 

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

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

 

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

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

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

 

 

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

说明jexus配置正确

 

jexus部署asp.net MVC

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

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

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

 

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

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

 

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

发布:或者通过命令: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

 

发布后的文件:


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

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

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

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

 

 

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

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

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地址。

 

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

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

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

 

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

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

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

 

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

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

 

 

 

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

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

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

第一步:登记SSL库。
首先查看“/lib”或“/usr/lib”等系统库文件夹中是否有SSL库文件的名字,该文件名应该是“libssl.so.版本号”(find / -name libssl.so.*),如果没有列出文件名,就证明你的系统还没有安装OpenSSL,请安装后再操作。
(注:我的系统的SSL库文件名是:libssl.so.0.9.8)
用VIM打开 “/usr/etc/mono/config”这个文件,在“<configuration>”节中,添加下面这一句:
<dllmap dll="libssl" target="libssl.so.0.9.8" os="!windows" />
(注意:dll的值一定要填“libssl”,target的值必须填你系统/lib文件夹中的ssl库文件名)

第二步:生成服务器端SSL证书和私钥。
具体操作方法参见有关APACHE的SSL证书生成方法

第三步:把证书和私钥文件名填写到JWS的配置文件中。
在Jexus文件夹中,打开 “jws.conf”,添加下面两句:
CertificateFile=证书文件路径和文件名
CertificateKeyFile=私钥文件路径和文件名

第四步:开启网站的HTTPS功能。
把网站服务端口改为443:
port=443
启用https:
UseHttps=true
View Code

相关文章:

  • 2022-01-05
  • 2021-05-11
  • 2022-12-23
  • 2022-12-23
  • 2021-06-02
猜你喜欢
  • 2022-12-23
  • 2021-10-07
  • 2021-11-13
  • 2021-11-07
  • 2021-09-27
  • 2022-01-26
相关资源
相似解决方案