编辑完成后,在英文半角输入法下 按 Esc 键 输入 :wq 完成保存文件修改并退出 (以上修改会在下面进行详细说明)
4、启动/重启 Jexus
当配置文件编辑完成后使用以下命令对Jexus进行 启动/重启
# 如果已启动 Jexus: sh /usr/jexus/jws restart # 如果未启动 Jexus: sh /usr/jexus/jws start
启动/重启成功后,在浏览器中输入 ip地址/域名:端口号 例如(192.168.1.1:8888 或 :8888 ) 即可访问Asp.Net Core应用程序
以上即是Jexus托管Asp.Net Core应用程序的配置全过程
通过微软官方的介绍,Asp.Net Core应用程序是运行在 Kestrel 服务器上的,
那么Jexus和Kestrel之间的关系什么呢?正如 Apache与Tomcat之间的关系.
Jexus作为Web服务器,Kestrel是应用服务器,Jexus会将浏览器发送的请求转交给Kestrel,Kestrel 根据请求 交给Asp.Net Core应用程序 处理后将处理结果返回到到Jexus,再由Jexus响应到浏览器,如图所示:
通过上面的图片我们可以看到一次完整的请求响应的过程。
那么Jexus是怎么将请求转发到 Kestrel 服务器中的Asp.Net Core应用程序上的呢?
这里不得不感叹Jexus的强力与使用的便捷,只需要简单的编辑配置文件即可。
在上面 第四步 配置Jexus运行Asp.Net Core应用程序 时,test文件编辑后的内容含义
port=8888
# 外部访问的端口号,可以改成你想要的端口号,外部访问通过 ip/域名:端口号 即可访问
root=/ /var/www/应用程序文件夹/ # 应用程序的工作根目录(全路径)
hosts=*
#OR your.com,*.your.com # 如果为服务器设置了DNS解析,则可以填写解析到服务器的域名,如:
AppHost={
# 最最最重要的配置
cmd=dotnet 应用程序名称.dll; # 命令,启动Asp.Net Core应用要执行的命令
root=/var/www/应用程序文件夹/; # Asp.Net Core应用程序所在的全路径
port=0;
# Asp.Net Core应用程序所使用的端口号,如果在程序中使用了UsrUrls自定义端口则使用UsrUrls中填写的端口(不建议使用UsrUrls自定义端口),
# 在没有使用UsrUrls自定义端口的情况下端口号设置为 0,Jexus会在运行时与Asp.Net Core进行"协商"具体使用的端口号,避免多个应用分配
# 端口的麻烦和冲突的风险。
}
配置的重点就在于AppHost中,需要注意的是在AppHost中的port(端口号)不代表Jexus对外服务的port(端口号),而是指要转发的 Asp.Net Core应用程序的端口号,简单来说就是会将外部的请求转发到这个端口,由这个端口对应的Asp.Net Core应用程序对请求进行处理。
强烈推荐“协商端口”,而不是在Asp.Net Core中使用UsrUrls设置端口,避免多个应用分配端口的麻烦和冲突的风险