使用BeetleX在Linux下部署.NET多站点服务
 在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多站点服务的更多相关文章
- Linux下部署FTP服务器
		
Linux下部署FTP服务器 下载安装包 在这里介绍的是离线部署FTP,首先下载对应的rpm包,下载链接为: 下载vsftpd服务 下载FTP客户端 安装ftp服务器 关闭防火墙 service ip ...
 - linux下部署项目问题
		
1. 今天linux下部署thinkphp项目,数据库用的mysql. 页面其他都是正常的,但是从数据库中取出的数据都是乱码.最后查了资料 解决方案: 在ThinkPHP里面 Library\Thin ...
 - linux 下部署nodejs(两种方式)
		
本次博客的编写时用的系统环境,刚装好的Centos 6.4 64位虚拟机. 另外关于linux 其他系统的安装 可以参考https://github.com/joyent/node/wiki/Ins ...
 - Linux下部署Symfony2对app/cache和app/logs目录的权限设置
		
在linux下部署完Symfony2,可能在访问的时候会报app/logs或者app/cache目录没有写权限的错误.在linux下,如果我们在命令行登陆的用户和web应用服务器(apache.ngi ...
 - linux下部署php项目-Apache、php、mysql关联
		
linux下部署php项目环境可以分为两种,一种使用Apache,php,mysql的压缩包安装,一种用yum命令进行安装. 使用三种软件的压缩包进行安装,需要手动配置三者之间的关系.apache和p ...
 - Linux下部署多个Tomcat(完整)
		
Linux下部署多个Tomcat 1.环境:1.1.Centos 5.01.2.apache-tomcat-6.0.18 2.需要解决一下几个问题2.1.不同的tomcat启动和关闭监听不同的端口2. ...
 - Linux 下部署Django项目
		
Linux 下部署Django项目 说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Py ...
 - Linux下部署SSM,通过启动tomcat即可运行
		
Linux下部署SSM项目 1. Java环境配置(JRE&JDK) 安装JDK8:sudo yum install java-1.8.0-openjdk 将操作系统配置为默认使用JDK8:s ...
 - linux 下部署web 程序
		
linux 下部署web 程序 1. 创建ucenter用户 一般情况下,发布应用程序都不是使用root用户的,需要创建一个普通用户来发布程序: 创建ucenter用户: useradd -d /uc ...
 
随机推荐
- Python selenium 三种消息框处理和浏览器(页面跳转)句柄处理
			
1. alert: 警告框,只是一个提示信息,只有一个确定按钮,起提示用户的作用: 2.confirm: 确认框,确定和取消按钮会带来不同的结果.点击确定会执行操作,点击取消按钮会取消操作: 3.pr ...
 - 关于c/c++指针,指针的指针
			
伪军迷祝:建军节快乐! 当调用一个函数时,实际上入参使用的都是副本(除非是引用),指针也不例外.举个例子如: void func(int a, int * p); 当调用func时无论是a还是p其实传 ...
 - Spring Boot的自动配置,到底是怎么做到?
			
作者:祖大帅 链接:juejin.im/post/5b679fbc5188251aad213110 来源:掘金 1. Spring Boot.Spring MVC 和 Spring 有什么区别? 分开 ...
 - 从零搭建Spring Boot脚手架(1):开篇以及技术选型
			
1. 前言 目前Spring Boot已经成为主流的Java Web开发框架,熟练掌握Spring Boot并能够根据业务来定制Spring Boot成为一个Java开发者的必备技巧,但是总是零零碎碎 ...
 - JS  执行机制笔记
			
js同步和异步同步 前一个任务结束以后再执行下面一个任务,程序的执行顺序与任务的排列顺序是一致的 同步任务都在主线程上执行,形成一个执行线 异步 前一个任务没结束之前程序还可以执行别的任务 j ...
 - 【lhyaaa】最近公共祖先LCA——倍增!!!
			
高级的算法——倍增!!! 根据LCA的定义,我们可以知道假如有两个节点x和y,则LCA(x,y)是 x 到根的路 径与 y 到根的路径的交汇点,同时也是 x 和 y 之间所有路径中深度最小的节 点,所 ...
 - 2020-06-22:已知两个非负数的异或值为M,两数之和为N,求这两个数?
			
福哥答案2020-06-22: 1.遍历法时间复杂度:O(N)最好空间复杂度:O(1)平均空间复杂度:O(sqrt(N))最坏空间复杂度:O(N)[0,N/2]依次遍历,符合条件的就是需要的结果. 2 ...
 - Visual Studio 2019预览,净生产力
			
本文章为机器翻译. https://blogs.msdn.microsoft.com/dotnet/2018/12/13/visual-studio-2019-net-productivity/ 该文 ...
 - C#LeetCode刷题之#581-最短无序连续子数组( Shortest Unsorted Continuous Subarray)
			
问题 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序. 你找到的子数组应是最短的,请输出它的长度. 输入: [2, 6, 4, 8, 10, ...
 - 搭建 WordPress 博客教程
			
搭建 WordPress 博客教程(超详细) 在 2018年7月29日 上张贴 由 suncent一条评论 本文转自:静候那一米阳光 链接:https://www.jianshu.com/p/5675 ...