linux上的asp.net,架构分类整理记录

来源:互联网 发布:淘宝网新店怎么推广 编辑:程序博客网 时间:2024/06/06 00:25

没卖出去的二手笔记本,dell1440,cpu:t6600,2G内存,250G硬盘,遂了想搭服务器的愿。centos6.5的系统,安装httpd,设置防火墙、selinux,静态网页终于正常跑起来。

为了让它能在外网访问,又操碎了心。花生壳注册了域名,路由器设置了端口映射,光纤是动态IP 又设置了DDNS,运营商封了http常用端口,又改了端口,终于外网能访问了。本来是2016年1月1日做完,正好给人做的新年祝福网页送祝福。可惜已是凌晨2:00多了,1号已过。可惜这部分没有记录。尤其是防火墙,selinux的设置,后面应该补上(不过我这么懒,不知道能不能实现了)。

       静态网页跑起来,又想跑个动态网页玩玩,还想在搭个个人网盘,搜了一下owncloud,评价不错,但是要安装mysql,正好,曾将学过C#和.net的一些东西,再加上不会PHP,python,也懒得学了,动态网站首选asp.net了。在linux跑asp.net肯定是mono了,但是有关架构,有些不明白,搜了半天,终于有点眉目,稍作整理,记录在此。

声明:以下部分全部来源于网络,有原文,有原图,也有自己理解的部分,如有侵权,请告知删除。

 

 正文:

首先,几种结构,linux + mono 这是必备的,另外网上还有几种架构,Nginx + FastCGI;Nginx + xsp;apache + xsp;jexus等等。

Nginx + FastCGI:

FastCGI我理解为一个解释器,作为Nginx和mono之间的桥梁。

    Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接收到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端。这就是Nginx+FastCGI的整个运作过程,如图1-3所示。(http://book.51cto.com/art/201202/314840.htm)



xsp是什么?

Xsp web服务器,但是由于静态资源处理能力有限,一般会整合一个高效的服务器软件进行弥补它的不足。

同时Linux中,运行环境才是真正的相同,这个比Windows/Linux更有可比性。Linux中搭建.NEt环境除了mono+Jexus之外还有一种方式,那就是mono+XSP。XSP是一款.NET的解析容器,它能够对.NET程序进行解析并维持高效的运行,但是它却有一个缺点,就是对于静态资源的处理能力相当有限,而一个网站中,大部分都是图片、CSS、JS等静态文件,真正动态生成的东西并不多,在这种情况下XSP就会暴露出它的软肋,面对这种情况,XSP一般都会整合一个高效的服务器软件进行弥补它的不足。类似于Tomcat+Apache的这种情况。这就衍生出了:网上提供的搭建Linux.NET的另外一种方式Linux+Apache(Nginx)+mono这种方式,它们在Apache(Nginx)和mono之间都会有一个插件(mod_mono?),原理实际上就跟XSP一样。

(http://www.cnblogs.com/xiaodiejinghong/archive/2013/04/05/3000404.html)

 

    无论是Apache + Mono+XSP,还是nginx+ Mono+XSP又或者其它的方式,比如 Apache+mod_mono、Nginx+FastCgi 等等,实质都是XSP,因为它们都是使用Mono所提供的ASP.NET处理模块“Mono.WebServer”名字空间实现对ASP.NET网站的支持。而我大jexus并不是。

    基于mono.WebServer命名空间的XSP只是要实现简单的实现ASP.NET网站程序的处理, ASP.NET提供一个便捷的测试环境,为Apache等WEB服务器支持ASP.NET提供一个功能有限的基础接口。

    只提供基本的必要的ASP.NET服务,要想建一个功能完善的WEB服务器,它还需要传统的WEB服务器的支持。

(参考:为什么说Jexus更适合打造基于Linux/Unix系统的企业级 ASP.NET平台:http://blog.csdn.net/jexus/article/details/5650714)

 

Mono Xsp 和Jexus有什么区别呢:

 

Jexus 是什么?

Jexus Web Server。百度百科简称为JWS,一查吓一跳,然而并不是,JWS-WebService简称JWS是java语言实现的一种webservice。

Jexus web服务器,但貌似不用解释器,请求 – jexus(mono框架)- 请求。Xsp没有单独的介绍,所以都是jexus等资料里找到的。Jexus,国人写的企业级高性能web服务器,由作者(宇内流云)一人独力开发并长期维护。牛人。

Jexus的框架特征也为高性能提供了基础保证。Jexus不象XSP那样,纯HTML也需要经过ASP.NET处理,更不象Apache和Nginx等服务器,需要通过插件的形式间接地对ASP.NET进行支持,Jexus把HMTL静态文件处理模块、ASP.NET处理模块、静态文件高速缓存机制、epoll/poll数据传输机制等进行了高度集成,从架构本身入手,最大限度地提高WEB服务器的处理能力和传输速度。

http://www.cnblogs.com/shanyou/p/3218611.html

 

这种方案好像不错,最终决定,试试这种吧。

0 0
原创粉丝点击