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. Python中的类(一)

    Python中的类(一) 一. 应用场景 如果多个函数中有一些相同的参数时,转换成面向对象. 二. 如何创建类 类是用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法 ...

  2. 回顾C#经典算法冒泡排序

    冒泡算法的原理: 比较相邻的两个数字,如果第一个数字比第二个数字大,则交换它们位置 从开始第一对比较到结尾最后一对,最后一个数字就是最大数 除了最后一个数字,再次从开始第一对比较到最后一对,得出第二大 ...

  3. Redis(四)持久化

    本文转载自编程迷思,原文链接 深入学习Redis(2):持久化 前言 在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化.复制(及读写分离).哨 ...

  4. 网络测量中基于Sketch方法的简单介绍

    Sketch介绍 为什么要用Sketch 网络流主要根据五元组.主机地址.包的大小来分类.在网络中存在各种各样的包,如果按照上述分类方法,对每一种包都分配一个计数器来储存,虽然测量准确,那么存放计数器 ...

  5. Filters in ASP.NET Core (转自MSDN)

    Filters in ASP.NET Core MVC allow you to run code before or after specific stages in the request pro ...

  6. 小程序的get和post需要注意的地方

    在进行异步请求之前先去小程序后台配置好服务器域名. get请求:header: { 'content-type':'json'}就可以. post请求:header: { 'content-type' ...

  7. Java监听器原理及实例

    一.监听器原理 监听器是基于事件驱动的,用于对操作事件进行监听.处理,是观察者设计模式的应用 监听器三元素: 2.1 事件源:事件发生的源头 2.2 事件:对事件进行抽象.封装 2.3 监听器:用于监 ...

  8. JS如何截取-后面的字符串

    str为要截取的字符串  通过获取字符串中“-”的坐标index,其他特殊字符以此类推 var index=str.lastIndexOf("\-"); str=str.subst ...

  9. 使用ant design组件时,Select设置mode="multiple"或mode="tags"时遇到问题:Uncaught Error: must set key for <rc-animate> children

    import {Select} from 'antd'; <Select className={styles.edit_area_dialog_table_select_input_layout ...

  10. Navicat 12 连接 Mysql8.0 使用日志

    目前最新的Mysql8.0 + Navicat12,使用中常有一些棘手问题 解决了的都会贴出来,受益于小伙伴们 我们的目标是发现问题,解决问题,欢迎大家贴出自己使用时遇到的问题,集思广益 好了,上干货 ...