Linux服务器部署mono+jexus发布asp.net网站

Linux服务器部署mono+jexus发布asp.net网站
Mono简介
1.mono的背景
 由于Linux/Unix等有更强的安全性、运行效率高、拥有大量优秀的开源组件,而.Net则有着其他语言无与伦比的开发效率,因此在非微软平台下运行.Net程序的需求很强烈。Mono 是一个由Novell 公司发起、并且得到微软支持的开源项目。Mono 项目可以在Linux,FreeBSD,Unix,Mac OS X 、Android和苹果系统等非微软操作系统下兼容运行.Net程序。目前占IOS游戏应用市场55%份额的游戏都是使用基于Mono的Unity3d技术开发的。
  基于Mono让ASP.Net开发的网站运行在Linux操作系统下也已经有了大量成功的案例,比如世界著名的网站“维基百科WikiPedia ”的搜索部分就是使用Mono支撑运行的、Mozilla开发者社区也是基于Mono运行,可以看http://www.mono-project.com/Companies_Using_Mono 这一些使用Mono进行开发的公司的列表。让.Net脱离Windows的禁锢,在开源的世界中尽情的徜徉。
2.什么是mono
  关于什么是mono,我想无论我怎么说,应该都不会比官方的解释,或者是百科更加详细;我这里就简单说吧,Java之所以能够跨平台运作,是依赖与Java的虚拟机JVM,而.NET之所以只能够在Windows中跑,同样是因为.NET运行需要依赖与Framework的Runtime(公共运行时),那如果能够在Linux同提供适合于.NET运作的环境(包括CLR等),那.NET也可以在Linux中跑起来了,这就是mono了。
3. 为什么要使用mono
  为什么使用mono,原因有很多,不过归结起来,我个人认为以下这是最重要的:
  (1)、作为服务器来说,如果能够实现一模一样的功能的,还是主推Linux。为什么呢?我列举了几个实例:
  首先,如果服务器需要打补丁,作为Windows服务器,你打完补丁之后必须重启,这一定程度上会对你的业务造成一定程度上的影响
  其次,我们经常会听到Windows会中毒,特别是作为Web服务器和邮件服务器,我们不知道用户会给我们上传一些什么东西上来,相反,我们却很少会听到Linux中毒这么一个说法;这是由于Linux存在着太多的发行版本,不同版本之间编译后的软件无法相互调用,因此,如果能够感染A版本的Linux病毒无法感染B版本的Linux,这在很大程度上削减了病毒的危害性。
  再者,作为服务器,我们会尽量希望自己的系统更加的轻量化,更加的高效,和更加的稳定;Linux对于我们的要求,都提供了,我们可以定制的安装软件和服务,对于一些不必要的服务我们可以直接不安装(注意,是直接不安装,而不是安装之后再关闭),相反,如果采用Windows的话,一上来就啪嗒啪嗒的安装一大堆软件和服务,无论你用不用得上,先给你安装;也许这个可以让您的服务器充当更多的角色,但是我们更加希望服务器能够做到单一高效而不是面面俱到。
  最后,Linux运行对于硬件的要求比较低,这也是由于Linux抛弃桌面环境(作为服务器,我们不应该安装XWindow)和没有太多不必要的服务所决定的,而Windows则显得矜贵多了,硬件配置低一点还不一定能够正常运作。
  (2)、从成本考虑:
  一般部署在Windows中的.NET程序都是采用 “Windows Server版本 + IIS + MS SQLServer” 这确实是.NET的黄金组合,但是,值得遗憾的是,它们都是要收费的,系统要收费,数据库要收费;作为大企业来说,上千上万台服务器,如果都采用这种模式的话,那将是一笔巨额的开销;对于小公司,资金对于它们来说本就是一个难题,能省下来的基本上都希望省下来,如果放着一个能够达到相同功能而且免费的模式不用而采取这种付费模式,那太说不过去了。
  而如果我们采用mono,把.NEt部署在Linux中,我们可以采用以下的组合:“Linux + mono + jexus(Apache/nginx + XSP2)+ MySql(PostgerSQL或其他免费数据库)”,所有的这些无论是否开源(jexus不开源)都是免费的。
作为老板,你会选择哪种呢?

Jexus
1.什么是Jexus?
Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,以支持ASP.NET、ASP.NET CORE、PHP为特色,同时具备反向代理、入侵检测等重要功能。可以这样说,Jexus是.NET、.NET CORE跨平台的最优秀的宿主服务器,如果我们认为它是Linux平台的IIS,这并不为过,因为,Jexus不但非常快,而且拥有IIS和其它Web服务器所不具备的高度的安全性,这是政府机构和重要企业对web服务器最必要也是最重要的品质需求。

  1. Jexus简介
    Jexus 即 Jexus Web Server,简称JWS,是Linux平台上的一款免费的ASP.NET WEB服务器,是 Linux、Unix、FreeBSD 等非Windows系统架设 ASP.NET WEB 服务器的核心程序,是企业级ASP.NET跨平台部署的一种可选方案。与其它WEB服务器相比,Jexus不但具有跨平台ASP.NET服务器这样的标志性特征,同时还拥有内核级的安全监控、入侵检测、URL重写、无文件路由等一系列重要功能和专有特性。

  2. Jexus for linux 特点:

  3. 支持多种操作系统:Jexus最初的设计目标是“跨平台的ASP.NET WEB服务器”,由于在Windows系统上,IIS已经是ASP.NET的优秀平台,所以,当前的Jexus以支持Linux和FreeBSD等非Windows系统为主要设计目标。正因为这个原因,就Linux/FreeBSD等平台的ASP.NET建设而言,Jexus具有特别重大的意义。

  4. 高性能:“高性能”是Jexus的重要的设计目标。虽然Jexus基于Mono环境运行,但Jexus并非全部由Mono的.NET组件构成,对于涉及性能的关键代码,Jexus非常巧妙地大量采用了Linux/Unix本身的优秀特性,从代码层保证了Jexus的性能优势。
    同时,Jexus的框架特征也为高性能提供了基础保证。Jexus不象XSP那样,纯HTML也需要经过ASP.NET处理,更不象Apache和Nginx等服务器,需要通过插件的形式间接地对ASP.NET进行支持,Jexus把HMTL静态文件处理模块、ASP.NET处理模块、静态文件高速缓存机制、epoll/poll数据传输机制等进行了高度集成,从架构本身入手,最大限度地提高WEB服务器的处理能力和传输速度。

  5. 安全性:Jexus内核含有安全监控机制,绝大多数恶意访问在进入网站前就会被Jexus直接禁止,这是Jexus有别于其它WEB服务器的又一大特色,所以,Jexus特别适合那些对安全要求较高的企业网站或政府网站使用。

  6. 稳定性:从运行机制而言,Jexus系统中,有专门检测工作进程执行状态的管理单元,任何一个进程退出或者任何一个ASP.NET网站应用程序域退出,被会被管理单元发现并得到重启,从而保证了Jexus能够7*24小时不间断工作;从程序本身而言,Jexus程序代码力求简洁,BUG很少,同时,Jexus的每个版本在正式发布之前,都要经过严格的压力测试,影响稳定性的因素,几乎在正式发布之前即已被全部排除。

  7. 功能强大:Jexus支持URL重写,支持多目标服务器的反向代理,支持PHP,支持GZIP压缩传输,并且,可以利用不同端口、不同虚拟路径、不同域名设置任意数量的网站,这些功能要素,表明了Jexus是一款功能完整而强劲的WEB服务器。

  8. 安装、配置、操作极为简单,服务社区化,各种问题能得到快速的处理,有良好的后续服务支撑能力。

  9. Mono Xsp 和Jexus有什么区别呢?

  10. 速度方面: 对于ASP.NET网页,大压力访问时Jexus处理速度更快; 对于静态文件,Jexus远快于XSP,而且对磁盘的要求和影响小N倍;

  11. 功能方面: XSP是以ASP.NET测试工作开发的,功能单调,而Jexus是作为生产环境使用的真实的WEB服务开发的,功能全面,因此,xsp与Jexus在功能上可比性

  12. 稳定性方面: Jexus有良好的容错和自动纠错能力,可以长期不间断运行,而XSP是单进程程序,没有任何自动纠错机制,无法保持不间断运行。

  13. 安全性方面: Jexus有关键的入侵检测功能,XSP没有任何安全检测功能,没有可比性;

  14. 多站点支持: XSP支持一站,Jexus支持任意多网站。
    最主要的一点:xsp不能保持不间断运行,而Jexus可以!
    5.Jexus的安装与配置。
    安装:
    1.下载http://www.linuxdot.net/down/jexus-5.4.tar.gz

  15. 进入cd jexus-5.4 安装sudo ./install

  16. 进入cd /usr/jexus

  17. 注册全局程序集:sudo ./jws regsvr

  18. 启动sudo ./jws start
    一些常用的Jexus命令:
    启动:sudo ./jws start
    重启:sudo ./jws restart
    停止:sudo ./jws stop
    启动某个网站: sudo start 网站名
    重启某个网站:sudo restart 网站名
    停止某个网站:sudo stop 网站名
    网站配置:
    Jexus支持多站点,可以用不同的端口、域名、虚拟路径设置任意多的网站,配置时,首先要注意如下三个规则:
    1)必须把所有网站配置文件放到jws.conf指定的网站配置文件夹内,这个文件夹除了网站配置文件,不能有其它任何文件,因为jexus会认为这儿的任何一个文件都代表着一个不同的网站。
    2)每个网站有且只有一个配置文件,配置文件的文件名就是这个网站的名称,比如 www.mwlzx.top这个网站,配置文件名可以写成mwlzx”,当然也可以写成其它文件名,以便管理员容易记忆和识别,但要特别注意:文件名不能有空格!
    3)一个网站可以拥有任意多的域名,不同网站不能有相同的域名,没有域名的网站只能有一个,这个没有域名的网站叫做“默认网站”,而一台服务器最多只能有一个默认网站。
    下面以www.mwlzx.top为例(二级网页www.mm.mwlzx.top),说说网站的配置
    在网站配置文件夹中建立一个文件,这个文件的名称应该有一些意义(至少要能让服务器管理员了解这个配置文件是属于哪一个网站的)
    设这个网站的配置文件的文件名为:default
    A、网站配置的基本内容:
    port=80 # jexus WEB服务器侦听端口(必填。当然可以是其它端口)
    root=/ /root/www # 网站URL根路径(虚拟目录)和对应的物理路径,两个路径字串之间必须用空格分开(必填。既使这个网站是一个纯粹的反向代理站,也得填)
    #可选项
    hosts=mwlzx.top,www.mwlzx.top # 网站域名(建议填写),可以用泛域名,比如:.mysite.cn(不填此项或只填一个“”号表示这是默认网站,一个端口只能有一个默认站)
    indexs=index.aspx,index.htm # 首页文件名,可以写多个,用英文逗号分开(可以不填。因为JWS系统含有常用首页名)
    aspnet_exts=mspx,ttt # 添加新出现的或自定义的ASP.NET扩展名(不建议填。多个扩展名用英文逗号分开,不加点号。系统含有常用扩展名)

B、最简配置示例(只需要在siteconf下边添加文件然后加入以下就行)
设这个网站的配置文件的文件名为:myweb1

port=80
root=/ /root/aspwww
hosts=mm.mwlzx.top

你可能感兴趣的:(网站)