1.安装 .Net SDK 不需要按照 .net core runtime,sdk 依赖于运行时会自动安装

第一步 添加dotnet源

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

第二步 安装 .Net Core
可能由于网络原因,下载要耐心等待一段时间,下载完成后执行下面命令。

sudo yum update
sudo yum install dotnet-sdk-2.1

(注意: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

在 Centos7 用Jexus服务器 运行.Net Core 只需几部的更多相关文章

  1. 使用Jexus服务器运行Asp.Net Core2.0程序

    前段时间写了篇关于.net core跨平台部署的文章.https://my.oschina.net/lichaoqiang/blog/1861977 主要讲述了,利用Nginx+CentOS+Supe ...

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

    什么是Jexus 官网解释:https://www.jexus.org/ Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,Jexus Web Service,简称JWS,以支持AS ...

  3. .NET跨平台之运行与Linux上的Jexus服务器

    谈及.NET跨平台,已经不是什么稀奇的事儿.今天我们就以Jexus服务器的部署为例.简单示范下.在这里,我用VMWare虚拟机来搭建Linux运行环境. Linux,我们选择CentOS7.大家可以前 ...

  4. 查看服务器运行多少个ASP.NET Core程序

    有时候,我们会想知道某台机器上面跑了什么程序. 当程序部署到IIS上面的时候,我们只需要打开IIS一看,就知道有多少个站点在运行了. 当我们在CentOS上面部署的时候,就没那么的直观了. 当然对于熟 ...

  5. CentOS7 + mono +Jexus 环境的搭建

    CentOS7的安装和配置 1,从http://www.centos.org/下载CentOS7的镜像,并在VMWare中创建该镜像的虚拟机,为方便操作,把虚拟机的网络连接设置为桥接模式:在安装过程中 ...

  6. Jexus针对Asp.net core应用程序的六大不可替代的优势

    1,配置简便:在Jexus上,Asp.net core只是Jexus上的一个"站点",因此,只需在Jexus上配置这个站点就行,无需其它配置: 2,操作统一:Jexus停止这个站点 ...

  7. ubuntu16.4下用jexus部署asp.net core rtm

    上篇文章介绍了下用vs发布部署到iis环境,今天说下ubuntu 下部署asp.net core,不需要安装.net core sdk,自带运行时方式部署,利用jexus服务器转发请求到asp.net ...

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

    第一步 安装.Net Core环境 安装 dotnet 环境参见官方网站 https://www.microsoft.com/net/core. 选择对应的系统版本进行安装.安装完成过后 输入命令查看 ...

  9. 在CentOS上使用Jexus托管运行 ZKEACMS

    ZKEACMS Core 是基于 .net core 开发的,可以在 windows, linux, mac 上跨平台运行,接下来我们来看看如何在 CentOS 上使用Jexus托管运行 ZKEACM ...

随机推荐

  1. notepad++怎样添加文件目录

    需要安装一个Explorer.dll文件 方法一:这个方法我个人试了不成功,可能因为版本问题,进入后选择Explorer进行安装 方法二:网上下载      Explorer.dll文件,放到\\No ...

  2. CDN的作用与基本过程

     转载请注明出处: leehao.me 或 https://blog.csdn.net/lihao21/article/details/52808747 简介 CDN,Content Distribu ...

  3. SQL 语句 merge into

    MERGE INTO tb_st_shxxcount tt USING ( SELECT DISTINCT sd.CODE, COUNT (ts.LRDW) count1, TO_CHAR (ts.L ...

  4. [原创]HBase学习笔记(2)- 基本操作

    1.使用hbase shell连接hbase 2.输入help可以查看帮助 3.输入list查看当前hbase中的所有表 4.使用create创建表test 其中test是表名,cf是列族.该表只创建 ...

  5. 记一次 oracle 12.2 RAC : Transaction recovery: lock conflict caught and ignored

    节点一 alert日志: PDB(17):Transaction recovery: lock conflict caught and ignored PDB(17):Transaction reco ...

  6. 怎么在一台电脑上安装win7与centos7双系统

    对于用习惯windows系统的小伙伴们来说,好像Linux系统的命令操作感觉会比较神秘,进而有部分小伙伴就想说也学一学LInux操作系统.但是苦于资源的问题--就一台计算机,一块硬盘,担心说如果安装了 ...

  7. Servlet基础知识总结

    Servlet是JavaWeb应用开发的核心组件.Servlet运行在Servlet容器中(例如最常用的Tomcat),它可以为各种客户请求提供相应服务.Servlet可以轻松完成以下任务: 动态生成 ...

  8. LR--用栈实现移进--归约分析(demo)

    1.考虑文法 \(E->E+E\) \(E->E*E\) \(E->id\) 2.最右推导 不难看出,这个文法是而二义的,所以有多个最右推导 3.移进归约 用一个栈存文法符号,用输入 ...

  9. Ubuntu16.04 解决matplotlib乱码或者中文显示不了的问题(可用)

    一. 下载字体 SimHei.ttf 复制到linux字体库中 sudo cp ~/SimHei.ttf /usr/share/fonts/SimHei.ttf 二.查看matplotlib配置 In ...

  10. 在node中使用jwt签发与验证token

    1.什么是token token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识. token是在服务端产生的.如果前端使用用户名和密码向服务端发送请求认证,服务端认证成功,那 ...