CentOS 6.5编译安装Mono-3.12.1和Jexus-5.6.3

一、概述

Jexus web server for Linux是一款基于.NET兼容环境,运行于Linux/unix操作系统之上,以支持ASP.NET为核心功能的高性能WEB服务器,用于替换Apache+mod_mono、Nginx+FastCgi方案运行ASP.NET。Jexus不但具有跨平台ASP.NET服务器这样的标志性特征,同时还拥有内核级的安全监控、入侵检测、URL重写、无文件路由等一系列重要功能和专有特性。

Mono XSP和Jexus有什么区别呢:

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

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

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

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

  • 多站点支持:XSP支持一站,Jexus支持任意多网站。

Jexus for Linux有如下特点:

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

  • 高性能:“高性能”是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服务器的处理能力和传输速度。

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

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

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

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

本文是在Vmware Workstation虚拟机上使用CentOS 6.5 + Mono 3.12.1 + Jexus 5.6.3 的安装简要教程。虚拟机的内网IP为192.168.1.197。

二、更新系统

运行以下命令,更新系统软件包:

  1. yum -y update

三、 安装编译Mono时需要的软件

运行以下命令,安装必需的软件包和库:

  1. yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel cairo-devel

四、编译安装libgdiplus

libgdiplus是安装Mono需要的GDI+兼容API库,运行以下命令,编译安装libgdiplus-3.12:

  1. cd /root/Downloads
  2. wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-3.12.tar.gz
  3. tar -xvzf libgdiplus-3.12.tar.gz
  4. cd libgdiplus-3.12
  5. ./configure --prefix=/usr/local
  6. make && make install

五、编译安装Mono

运行以下命令,从源码编译安装Mono-3.12.1:

  1. cd /root/Downloads
  2. wget http://download.mono-project.com/sources/mono/mono-3.12.1.tar.bz2
  3. tar -jxvf mono-3.12.1.tar.bz2
  4. cd mono-3.12.1 ./configure --prefix=/usr/local
  5. make && make install
  6. ldconfig

输入mono -V命令,如有mono版本信息,则安装成功。

六、编译安装Jexus

运行以下命令,从源码编译安装Jexus-5.6.3:

  1. cd /root/Downloads
  2. wget http://jaist.dl.sourceforge.net/project/jexus-webserver/jexus-5.6.3.tar.gz
  3. tar -zvxf jexus-5.6.3.tar.gz cd jexus-5.6.3
  4. ./install /usr/local/jexus

七、将Jexus配置为系统服务

运行以下命令,将Jexus配置为系统服务:

  1. vi /etc/init.d/jexus

在这个文件中添加如下内容:

  1. #! /bin/bash
  2. # chkconfig: 2345 10 90
  3. # description: jexus
  4. case "$1" in
  5. start)
  6. /usr/local/jexus/jws start
  7. ;;
  8. stop)
  9. /usr/local/jexus/jws stop
  10. ;;
  11. restart)
  12. /usr/local/jexus/jws restart
  13. ;;
  14. status)
  15. /usr/local/jexus/jws status
  16. ;;
  17. *)
  18. exit 1
  19. ;;
  20. esac

运行以下命令,将Jexus配置为开机启动:

  1. chmod 755 /etc/init.d/jexus
  2. chkconfig jexus on

八、测试

通过以下命令可以启动/停止/重启Jexus服务:

  1. /usr/local/jexus/jws start
  2. /usr/local/jexus/jws stop
  3. /usr/local/jexus/jws restart

通过以下命令可以启动/停止/重启指定网站:

  1. /usr/local/jexus/jws start <siteName>
  2. /usr/local/jexus/jws stop <siteName>
  3. /usr/local/jexus/jws restart <siteName>

打开浏览器访问:

http://192.168.1.197/info

若浏览器中打开如下页面,则安装成功:

http://ghoulich.xninja.org/wp-content/uploads/sites/2/2016/01/image-1_jexus-install-complete.png