阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux使用Jexus托管ASP.Net Core应用程序

542次阅读
没有评论

共计 4433 个字符,预计需要花费 12 分钟才能阅读完成。

第一步 安装.Net Core 环境

安装 dotnet 环境参见官方网站 https://www.microsoft.com/net/core。

选择对应的系统版本进行安装。安装完成过后 输入命令查看版本,目前最新版为 1.04:

dotnet --version

此时已经可以发布 Asp.Net Core 应用程序到 Linux 上运行了

将 Asp.Net Core 程序发布到 Linux 服务器上,通过 dotnet 命令来运行,如:

dotnet / 应用程序全路径 / 应用程序名.dll

成功运行后会显示:

Hosting environment: Production
Content root path: / 应用程序全路径 /
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

(Asp.Net Core 应用程序默认使用 5000 端口,可以在项目 Program.cs 中进行自定义端口,但不建议在 Program.cs 中进行自定义端口)

但是这个时候,只要关闭当前的 ssh 会话 那么 Asp.Net Core 应用程序就会结束运行。

那么该怎么办呢?使用 Jexus ! (需要使用 5.8.2 版本或更高版本的)https://news.cnblogs.com/n/569277/

Jexus 官网地址: https://www.jexus.org/

Jexus 官网论坛: https://www.linuxdot.net

第二步 安装 Jexus

安装 Jexus 直接使用一下命令即可 (需要在 root 身份下执行):

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

安装成功后会提示:OK, Jexus has been installed in /usr/jexus.

第三步 发布程序到 Linux 服务器

将的 Asp.Net Core 应用程序文件夹 发布到 Linux 服务器的  /var/www/   路径下

(如果 www 文件夹不存在,则使用    mkdir /var/www/    命令创建 www 文件夹 )

此时,应用程序所在的完整路径为    /var/www/ 应用程序文件夹 / 应用程序名称.dll

第四步 配置 Jexus 运行 Asp.Net Core 应用程序

使用以下命令:

1、切换到 Jexus 配置文件目录

cd /usr/jexus/siteconf

2、复制默认的配置文件为 test

cp default test

3、编辑 test 配置文件

vi test

test 文件默认内容为:

######################
# Web Site: Default 
########################################

port=80
root=/ /var/www/default
hosts=*    #OR your.com,*.your.com


# addr=0.0.0.0
# CheckQuery=false
NoLog=true
# AppHost={CmdLine=/usr/local/x/xx;AppRoot=/usr/local/x;Port=5000}
# NoFile=/index.aspx
# Keep_Alive=false
# UseGZIP=false

# UseHttps=true
# ssl.certificate=/x/xxx.crt  #or pem
# ssl.certificatekey=/x/xxx.key
# ssl.protocol=TLSv1.0    # TLSv1.1 or  TLSv1.2...
# ssl.ciphers= 

# DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24
# AllowFrom=192.168.*.*
# DenyDirs=~/cgi, ~/upfiles
# indexes=myindex.aspx
# rewrite=^/.+?\.(asp|php|cgi|pl|sh)$ /index.aspx
# reproxy=/bbs/ http://192.168.1.112/bbs/
# host.Redirect=abc.com www.abc.com  301
# ResponseHandler.Add=myKey:myValue


# Jexus php fastcgi address is '/var/run/jexus/phpsvr'
#######################################################
# fastcgi.add=php|socket:/var/run/jexus/phpsvr

# php-fpm listen address is '127.0.0.1:9000'
############################################
# fastcgi.add=php|tcp:127.0.0.1:9000
编辑完成后 test 的内容为 (注意 AppHost 中的每一项结尾应该有英文半角的分号):
 
######################
# Web Site: test
########################################

port=8888                    
root=/ /var/www/ 应用程序文件夹 /
hosts=*   #OR your.com,*.your.com 

AppHost={cmd=dotnet 应用程序名称.dll;   
  root=/var/www/ 应用程序文件夹 /;  
  port=0;       
}


# addr=0.0.0.0
# CheckQuery=false
NoLog=true
# AppHost={CmdLine=/usr/local/x/xx;AppRoot=/usr/local/x;Port=5000}
# NoFile=/index.aspx
# Keep_Alive=false
# UseGZIP=false

# UseHttps=true
# ssl.certificate=/x/xxx.crt  #or pem
# ssl.certificatekey=/x/xxx.key
# ssl.protocol=TLSv1.0    # TLSv1.1 or  TLSv1.2...
# ssl.ciphers= 

# DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24
# AllowFrom=192.168.*.*
# DenyDirs=~/cgi, ~/upfiles
# indexes=myindex.aspx
# rewrite=^/.+?\.(asp|php|cgi|pl|sh)$ /index.aspx
# reproxy=/bbs/ http://192.168.1.112/bbs/
# host.Redirect=abc.com www.abc.com  301
# ResponseHandler.Add=myKey:myValue


# Jexus php fastcgi address is '/var/run/jexus/phpsvr'
#######################################################
# fastcgi.add=php|socket:/var/run/jexus/phpsvr

# php-fpm listen address is '127.0.0.1:9000'
############################################
# fastcgi.add=php|tcp:127.0.0.1:9000

编辑完成后,在英文半角输入法下   按 Esc 键 输入  :wq   完成保存文件修改并退出  (以上修改会在下面进行详细说明)

4、启动 / 重启 Jexus

当配置文件编辑完成后使用以下命令对 Jexus 进行 启动 / 重启

# 如果已启动 Jexus:sh /usr/jexus/jws restart

# 如果未启动 Jexus:sh /usr/jexus/jws start

启动 / 重启成功后,在浏览器中输入  ip 地址 / 域名: 端口号 例如 (192.168.1.1:8888 或 www.aspnetcore.com: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 响应到浏览器,如图所示:

Linux 使用 Jexus 托管 ASP.Net Core 应用程序

通过上面的图片我们可以看到一次完整的请求响应的过程。

那么 Jexus 是怎么将请求转发到 Kestrel 服务器中的 Asp.Net Core 应用程序上的呢?

这里不得不感叹 Jexus 的强力与使用的便捷,只需要简单的编辑配置文件即可。

在上面  第四步 配置 Jexus 运行 Asp.Net Core 应用程序  时,test 文件编辑后的内容含义 

port=8888                     # 外部访问的端口号,可以改成你想要的端口号, 外部访问通过 ip/ 域名: 端口号 即可访问
root=/ /var/www/ 应用程序文件夹 /  # 应用程序的工作根目录 (全路径)
hosts=*                        #OR your.com,*.your.com # 如果为服务器设置了 DNS 解析,则可以填写解析到服务器的域名,如:www.myweb.com

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 设置端口,避免多个应用分配端口的麻烦和冲突的风险

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/143968.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4433字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19356
评论数
4
阅读量
8319697
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
欧洲无限速云盘免费10GB永久存储 + WebDAV部署+图床搭建,多平台联动一步到位!

欧洲无限速云盘免费10GB永久存储 + WebDAV部署+图床搭建,多平台联动一步到位!

欧洲无限速云盘免费 10GB 永久存储 + WebDAV 部署 + 图床搭建,多平台联动一步到位! 大家好,我...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...