​      在windows下常用IIS来部署.NET的多站点服务,但在Linux下就没这么方便了;虽然可以使用一些代理服务器如nginx,jexus等来反代或部署应用,但nginx对.NET应用的托管就相对没这么方便了,jexus的确是个不错的服务应用;在这里介绍一下BeetleX来完成这一功能,BeetleX提供了一个HTTP和WS的反代组件服务Bumblebee,组件的新版本提供服务进程管理模块,可以通过这一功能轻易地在Linux中为.NET提供多站部署能力。

简介

Beetlex在这里还是简单介绍一下,它是一款开源网络通讯服务组件,通过它可以实现各种基于TCP通讯的应用服务。而这里介绍的是基于BeetleX扩展的HTTP和WS通讯网关组件Bumblebee;为了提供更灵活的扩展性Bumblebee是以组件的方式提供;因此想使用这个组件进行一个网关和进程容器来管理的话还是需要写个外壳程序来启动它。Bumblebee是以.net core2.1进行开发,只要应用是基于.net core2.1或更高版本都可以使用,并可同时运行在Linux或Windows下。虽然要自己引入组件来编写服务器,由于灵活的插件机制所以可以引用对应的管理插件即可达到一个非常简便的管理服务。可以通过

https://beetlex.io/__system/bumblebee/index.html

查看基于Bumblebee部署的多.NET网站示例

使用

一般情况下要需要构建一个控制台程序,然后引用最新版本的BeetleX.bumblebee

(https://www.nuget.org/packages/BeetleX.Bumblebee/)

引用组件后即可以定义相应的Gateway对象,并启动相关服务

var g = new Gateway();
g.HttpOptions(o => { o.LogLevel = BeetleX.EventArgs.LogType.Warring; o.LogToConsole = true; o.Port = ; o.SetDebug(); });
g.OutputServerAddress = true;
g.SetRoute("*", null).AddServer("http://192.168.2.25:9090","http://192.168.2.26:9090","http://192.168.2.27:9090");
g.Open();

以上就是提供一个简单的网关负载服务,并把所有请求负载到三台服务上。由于组件提供了可视化的管理插件,所以接下来就不介绍代码的使用;如果想通过代码来定义自己的功能,可以查看组件的相关代码。

进程管理类

在新版本中可以通过Gateway.ProcessCenter来管理相关服务进程的工具,相关类的具体行为方法如下:

        public void Add(ServiceInfo info)
public void Update(string id, ServiceInfo info)
public void Start(string id)
public void Stop(string id)
public void Remove(string id)

由于组件提供管理插件进行UI操作,在这里就不详细介绍。

引用管理插件

组件提供的管理插件也是免费的,提供大部分有限的功能在线管理。前面贴图展示的功能就是这个免费插件所提供的功能。在程序中只需要引用BeetleX.Bumblebee.Configuration的最新版本,并通过代码加载这个插件即可在服务中方便到它

 g.LoadPlugin(typeof(Bumblebee.Configuration.Management).Assembly)

更多资料可以查看 http://doc.beetlex.io/

服务进程管理

这功能是最新版引用,管理插件也提供这一管理模块;通过点击Process菜单来打开服务进程管理模块。

可以根据自己的需要来添加Web服务进程,以上截图是针对 http://beetlex.io/ 官网的多服务站点配置。

以上是针对 http://webbenchmark.beetlex.io/ 配置,里面的信息主要用于描述启动的文件名,运行目录和对应的启动参数等待。其他参数主要用于描述服务,路由和启动等。

  • Host
    指定可以访问的HTTP服务地址,这个地址会自动添加到网关的服务中

  • Route
    指定相应路由规则下访问该服务

  • AutoStart

    当网关启动的时候自动启动该进程服务

相关操作

每个进程都提供简单的操作,主要包括有启动,重启,停止和查看日志等等。而这个日志只是用于查看进程服务输出的控制台的信息内容。

总结

通过以上介绍是不是对BeetleX进行多站服务部署感非常简单,由于BeetleX是基于反代的方式来进行代理访问,所以在服务进程管理上并不只是管理.NET的服务进程,只要服务是基于HTTP或WS不管是不是.NET服务都可以通过BeetleX进行管理并集成到统一的服务中。更重要的一点BeetleX可以部署到Linux或windows等多平台下,并可以良好地支持TLS实现安全可靠的网站服务。

使用BeetleX在Linux下部署.NET多站点服务的更多相关文章

  1. Linux下部署FTP服务器

    Linux下部署FTP服务器 下载安装包 在这里介绍的是离线部署FTP,首先下载对应的rpm包,下载链接为: 下载vsftpd服务 下载FTP客户端 安装ftp服务器 关闭防火墙 service ip ...

  2. linux下部署项目问题

    1. 今天linux下部署thinkphp项目,数据库用的mysql. 页面其他都是正常的,但是从数据库中取出的数据都是乱码.最后查了资料 解决方案: 在ThinkPHP里面 Library\Thin ...

  3. linux 下部署nodejs(两种方式)

    本次博客的编写时用的系统环境,刚装好的Centos 6.4  64位虚拟机. 另外关于linux 其他系统的安装 可以参考https://github.com/joyent/node/wiki/Ins ...

  4. Linux下部署Symfony2对app/cache和app/logs目录的权限设置

    在linux下部署完Symfony2,可能在访问的时候会报app/logs或者app/cache目录没有写权限的错误.在linux下,如果我们在命令行登陆的用户和web应用服务器(apache.ngi ...

  5. linux下部署php项目-Apache、php、mysql关联

    linux下部署php项目环境可以分为两种,一种使用Apache,php,mysql的压缩包安装,一种用yum命令进行安装. 使用三种软件的压缩包进行安装,需要手动配置三者之间的关系.apache和p ...

  6. Linux下部署多个Tomcat(完整)

    Linux下部署多个Tomcat 1.环境:1.1.Centos 5.01.2.apache-tomcat-6.0.18 2.需要解决一下几个问题2.1.不同的tomcat启动和关闭监听不同的端口2. ...

  7. Linux 下部署Django项目

    Linux 下部署Django项目   说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Py ...

  8. Linux下部署SSM,通过启动tomcat即可运行

    Linux下部署SSM项目 1. Java环境配置(JRE&JDK) 安装JDK8:sudo yum install java-1.8.0-openjdk 将操作系统配置为默认使用JDK8:s ...

  9. linux 下部署web 程序

    linux 下部署web 程序 1. 创建ucenter用户 一般情况下,发布应用程序都不是使用root用户的,需要创建一个普通用户来发布程序: 创建ucenter用户: useradd -d /uc ...

随机推荐

  1. 浅谈二分图的最大匹配和二分图的KM算法

    二分图还可以,但是我不太精通.我感觉这是一个很烦的问题但是学网络流不得不学它.硬啃吧. 人比较蠢,所以思考几天才有如下理解.希望能说服我或者说服你. 二分图的判定不再赘述一个图是可被划分成一个二分图当 ...

  2. x86架构:实模式下的中断

    https://www.cnblogs.com/Philip-Tell-Truth/p/5317983.html   这里有详细的过程说明.文字很多,为了方便阅读和理解,提炼了一些要点后归纳.整理了如 ...

  3. 删除数据-大表根据rowid来删除部分数据

    偶遇需求,大表中需要删除部分数据.分批删除. declare TYPE type_table_rowid IS TABLE OF ROWID INDEX BY BINARY_INTEGER;table ...

  4. 记录一次jmeter脚本开发缺少utf-8惹的祸

    背景:需要模拟余额发放,并进行大批量的发放,我就想到了jmeter.就是几个简单的接口,我想很简单,就上手,没想到最后鸡鸡,害我查了半天原因. 操作:我编写的脚本: 请求默认值的内容编码我也是为空,当 ...

  5. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  6. 使用Flask开发简单接口(1)--GET请求接口

    前言 很多想学习接口测试的同学,可能在最开始的时候,常常会因没有可以练习的项目而苦恼,毕竟网上可以练习的接口项目不多,有些可能太简单了,有些可能又太复杂了,或者是网上一些免费接口请求次数有限制,最终导 ...

  7. 连通图算法详解之① :Tarjan 和 Kosaraju 算法

    相关阅读: 双连通分量 ,割点和桥 简介 在阅读下列内容之前,请务必了解 图论相关概念 中的基础部分. 强连通的定义是:有向图 G 强连通是指,G 中任意两个结点连通. 强连通分量(Strongly ...

  8. redis(二)redis的主从模式和集群模式

    redis(二)redis的主从模式和集群模式 主从模式 集群模式 主从模式 redis的主从模式,指的是针对多台redis实例时候,只存在一台主服务器master,提供读写的功能,同时存在依附在这台 ...

  9. Java中编写代码出现异常,如何抛出异常,如何捕获异常

    异常的产生过程解析 先运行下面的程序,程序会产生一个数组索引越界异常ArrayIndexOfBoundsException.我们通过图解来解析下异常产生的过程. 工具类 class ArrayTool ...

  10. JavaScript call的示例

    作用: 改变函数执行时的作用域 let name = 'global name' function say(){ console.info(arguments) // 调用时接收的参数个数 conso ...