前段时间写了篇关于.net core跨平台部署的文章。https://my.oschina.net/lichaoqiang/blog/1861977

主要讲述了,利用Nginx+CentOS+Supervisor+.NetCore2.1,来运行.net core程序,感兴趣的朋友可以看一下。今天向大家介绍.net core使用jexus服务器的配置方法。

关于Jexus的介绍,大家可以在https://www.jexus.org/这个网站网站了解,现在的版本是V5.8.3。jexus的安装非常简单,按照官网的说法,只要执行以下命令就能完成jexus的安装。

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

就是下载和执行了一个sh脚本,让我们来看看,脚本中都写了些什么?

#!/bin/sh

/usr/jexus/jws stop >/dev/null >&
cd /tmp rm -rf jexus-5.8.* >/dev/null >&
wget --no-check-certificate https://linuxdot.net/down/jexus-5.8.3-x64.tar.gz
tar -zxvf jexus-5.8.-x64.tar.gz
cp -rf jexus /usr/
cd /usr/jexus
/usr/jexus/jws regsvr
rm -rf /tmp/jexus
rm -rf /tmp/jexus-5.8.* >/dev/null >& cd /usr/jexus
echo 'OK, Jexus has been installed in /usr/jexus.'

打开一看,步骤非常清晰吧。

我目前使用的服务器是CentOS7.0+,首次执行jexus脚本未发生任何异常。由于我的服务器安装了NGINX,因此,为避免端口冲突,我先关闭了Nginx进程。等安装成功后,我们可以在/usr/jexus目录下看到相关文件及配置信息,我们的站点配置,主要在sitconfig这个文件夹下。

默认,有个default的文件。打开看看:

######################
# Web Site: Default
######################################## port=
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=}
# 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. # TLSv1. or TLSv1....
# ssl.ciphers= # DenyFrom=192.168.0.233, 192.168..*, 192.168.2.0/
# 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
# 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:

就是关于站点的一些配置信息。于是,我新建了一个配置文件,名为api.xxx.com的配置文件,复制default内容到该文件。根据应用情况,进行参数配置:

######################
# Web Site: api.kaola100.com
######################################## port=
root=/ /wwwroot/TiKu/Api
hosts=* #OR your.com,*.your.com # addr=0.0.0.0
# CheckQuery=false
NoLog=true
AppHost={CmdLine=dotnet TiKu.Api.dll;AppRoot=/wwwroot/TiKu/Api;Port=}
# 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. # TLSv1. or TLSv1....
# ssl.ciphers= # DenyFrom=192.168.0.233, 192.168..*, 192.168.2.0/
# 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
# 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:

另外,我这台服务器上.net core环境已经安装过了,主要配置信息如下:

port=
root=/ /wwwroot/TiKu/Api
hosts=* #OR your.com,*.your.com # addr=0.0.0.0
# CheckQuery=false
NoLog=true
AppHost={CmdLine=dotnet TiKu.Api.dll;AppRoot=/wwwroot/TiKu/Api;Port=}

port对监听端口进行配置,root指定当前项目的根目录。hosts默认吧。AppHost中,指定了应用启动执行的命令及网站根目录、端口等。

完成以上配置,我们执行jexus启动命令即可。

sh /usr/jexus/jws start

jexus常用命令:

Jexus包括如下操作命令(首先 cd /usr/jexus):
启动:sudo ./jws start
停止:sudo ./jws stop
重启:sudo ./jws restart

也可jws start后面,可以指定启动/停止/重启哪个站点,如:

sudo ./jws start api.xxx.com

start后面跟配置文件名即可!

执行上述操作后,我们就可以看到运行起来的.net core程序了!

关于使用jexus的好处,借用网络上的一些话!

1、配置简便:在Jexus上,Asp.net core只是Jexus上的一个“站点”,因此,只需在Jexus上配置这个站点就行,无需其它配置;

2、操作统一:Jexus停止这个站点就自动停止asp.net core应用,同样地,启动这个站点就自动启动对应的core应用程序,无需多头操作;

3、高性能:Jexus本身是一款与nginx性能相当的高性能Web服务器,而Jexus与Asp.net core之间,是TCP转发,不是反向代理之类的HTTP转发,没有Http协议解析和重组的性能消耗,因此,Jexus能更好的呈现Asp.net Core的高性能优势;

4、端口自适应:在Jexus上,asp.net core不需要设置任何端口号,从而有效避免了多个asp.net core应用程序很可能出现的端口冲突这个让运维人员头疼的难题;

5、高度可靠性:如果core应用程序意外崩溃,Jexus会立即把它拉起来,从而做到7*24不间断运行;

6、支持WebSocket:因为是TCP转发,所以,对应用层协议没有限制。

7、AppHost的port值设为0,得到端口自适应的优势。

好了,今天就写到这里吧!

使用Jexus服务器运行Asp.Net Core2.0程序的更多相关文章

  1. 构建使用SQL服务器的ASP.net Core2.0 API

    web api的教程非常少,使用 core2.0的更少,微软提供了一个aspnet core2的教程,也提供了EF core中访问SQL服务器的教程,参考这些教程可以做出使用sql server的as ...

  2. 将asp.net core2.0项目部署在IIS上运行

    原文:将asp.net core2.0项目部署在IIS上运行 前言:  与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...

  3. 【转】Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法

    1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...

  4. Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法

    1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...

  5. 一步一步带你做WebApi迁移ASP.NET Core2.0

    随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...

  6. 在阿里云Windows Server 上部署ASP .NET CORE2.0项目

    近期使用ASP.NET Core2.0对博客进行了重写,在部署到服务器时遇到了一些问题,来记录一下留用. 配置环境 安装 .Net Framework3.5 在IIS管理器上直接开启,这里总是失败,上 ...

  7. WebApi迁移ASP.NET Core2.0

    WebApi迁移ASP.NET Core2.0 一步一步带你做WebApi迁移ASP.NET Core2.0   随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的AS ...

  8. .Net Core技术研究-WebApi迁移ASP.NET Core2.0

    随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...

  9. 安装mono和jexus,运行asp.net程序

    随笔- 62  文章- 1  评论- 7  raspberrypi(树莓派)上安装mono和jexus,运行asp.net程序   参考网址: http://www.linuxdot.net/ htt ...

随机推荐

  1. 100-days: sixteen

    Title: The world's most expensive cities 生活成本最高的城市 For the first time in its 30-year history, the Wo ...

  2. 关于react的一些东西

    Facebook 官方推出Create-React-App脚手架,基本可以零配置搭建基于webpack的React开发环境,内置了热更新等功能. 使用的原因以及特性: 无需配置:集成了对 React, ...

  3. faiss学习

    faiss 学习 github wiki 介绍 Faiss:Facebook开源的相似性搜索类库 安装 在Mac系统编译安装Faiss faiss教程跟进--Makefile 编译 faiss安装 m ...

  4. python_day11

    一.简介 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 2.关系型数据库 ...

  5. C# 多线程编程,传参,接受返回值

    C# 多线程编程,传参,接受返回值 今天将多线程的知识有回顾了下,总结了几点: 新建一个线程(无参数,无返回值) Thread th = new Thread(new ThreadStart(Prin ...

  6. JS基础-运算符-函数

    1.运算符  1.赋值运算符和扩展运算符    1.赋值运算符 =    2.扩展运算符      +=,-=,*=,/=,%=,^=....      ex:        a=a+b;--> ...

  7. 学习newton raphson and back eluer

    % % time step https://ww2.mathworks.cn/matlabcentral/answers/184200-newton-raphson-loop-for-backward ...

  8. 发布本地项目和源码到maven私服中

    有时候我们会使用第三方包到我们的项目中,但是想看源码的时候,需要下载源码查看,十分麻烦. 不如把源码上传到maven私服中,这样查看源码的时候就可以直接从mvaen nexus下载直接查看了. 方法如 ...

  9. shell中与C语言中的区别

    shell中为啥与C语言有区别呢?弄成一样的不是很好么,其实不然,shell提供很多操作,这些操作不单单是执行程序或者命令,在很多时候是执行脚本的,简单的shell就是脚本编程,它的主要目的是处理文件 ...

  10. 程序的流程控制-分支结构 if

    1.分支结构:if语句 第一种格式: /* if(条件表达式){ 语句体; } 其它语句 */ public class IfDemo1{ public static void main(String ...