最简化版本-Centos7 配置.Net Core 及Jexus服务器
1.安装 .Net Core
第一步 添加dotnet源
1 sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc 2 sudo sh -c 'echo -e "[packages-microsoft-com-prod] 3 name=packages-microsoft-com-prod 4 baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod 5 enabled=1 6 gpgcheck=1 7 gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
第二步 安装 .Net Core
可能由于网络原因,下载要耐心等待一段时间,下载完成后执行下面命令。
1 sudo yum update 2 sudo yum install libunwind libicu 3 sudo yum install dotnet-sdk-2.1.4
(注意:centos6下gcc版本会提示过低,安装失败。解决方案:1.安装centos7(简单方便,帮瓦工之类的推荐);2.更新编译gcc(请自行搜索解决))
第三步 创建 Hello World测试程序
1 dotnet new console -o demo 2 cd demo
3 dotnet run
2.写一个ASP.NET Core应用(官网链接)
## 创建 razor web应用#
1 cd /home 2 ///在当前目录下创建一个Web应用 3 dotnet new razor -o aspnetcoreapp 4 /// 运行应用程序 5 cd aspnetcoreapp 6 dotnet run
(ps:可能会Warn:“Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Error -99 EADDRNOTAVAIL address not available'”, 具体参考 https://github.com/aspnet/KestrelHttpServer/issues/2117。验证完后,退出当前应用,继续下面的内容。)
我们的Web应用程序默认运行在5000端口,通常我们对外提供的Web都在80,443端口。Windows上我会使用IIS来宿主ASP.NET Core,在Linux下可以用Nginx,Apache,Jexus 等,[微软的文档都有详细说明]
## 安装 Jexus#
上面我们已经完成.NET Core环境的安装,通常我们在Linux部署ASP.NET Core应用,按照微软的官方文档,我们通常需要Nginx 搭配 Systemd, Nginx并没有接管Kestrel 进程,我们需要维护2个进程,增加了复杂度。如果你把asp.net core部署于windows上,我们可以用IIS来接管Kestrel进程,我们在Linux上也可以用Jexus来达到IIS一样的体验。
直接安装独立版的Jexus,独立版的Jexus自带Mono,使用的是Mono的稳定版本4.8。安装 Jexus 直接使用一下命令即可(需要在root身份下执行):
安装独立版Jexus
curl https://jexus.org/release/x64/install.sh|sh
安装成功后会提示:OK, Jexus has been installed in /usr/jexus.
## 配置Jexus运行asp.net core#
把asp.net core 应用部署到Jexus
mkdir -p /var/www/aspnetcore cd /var/dotnet/aspnetcoreapp/ dotnet publish -o /var/www/aspnetcore
然后使用下面的命令测试发布过后的程序是否运行正常
dotnet /var/www/aspnetcore/aspnetcoreapp.dl
## 配置jexus 网站:
/// 1、切换到Jexus配置文件目录 cd /usr/jexus/siteconf /// 2、复制默认的配置文件为aspnetcore cp default aspnetcore vi aspnetcore
###################### # Web Site: aspnetcore ######################################## port=80 root=/ /var/www/aspnetcore hosts= * #OR your.com,*.your.com AppHost={CmdLine=dotnet /var/www/aspnetcore/aspnetcoreapp.dll;AppRoot=/var/www/aspnetcore/;Port=0}
配置的重点就在于AppHost中,需要注意的是在AppHost中的port(端口号)不代表Jexus对外服务的port(端口号),而是指要转发的 Asp.Net Core应用程序的端口号,如果在程序中使用了UsrUrls自定义端口则使用UsrUrls中填写的端口(不建议使用UsrUrls自定义端口),在没有使用UsrUrls自定义端口的情况下端口号设置为 0,Jexus会在运行时与Asp.Net Core进行"协商"具体使用的端口号,避免多个应用分配,端口的麻烦和冲突的风险。 简单来说就是会将外部的请求转发到这个端口,由这个端口对应的Asp.Net Core应用程序对请求进行处理。
/// 由于我们的实验机子上上面的站点没有设置主机头,我们要把默认的default删除了 rm -rf /usr/jexus/siteconf/default /// 如果已启动 Jexus: sh /usr/jexus/jws restart /// 如果未启动 Jexus: sh /usr/jexus/jws start
作者: LandWind
出处:https://www.cnblogs.com/LandWind/articles/8549380.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下