2013-07-26 寫過一篇《CentOS 6.3下 安裝 Mono 3.2 和Jexus 5.4》,CentOS 7在CentOS 6的基礎上有很大的調整,本文是這篇文章的更新,主要介紹CentOS 7下安裝Mono 3.4 和 Jexus 5.6。
CentOS是一個基于RHEL的Linux發行版,其目的是為了提供一套免費與自由的企業等級Linux發行版。CentOS的名稱來自于「Community ENTerprise Operating System」,從名稱便可以知道這是一套由社區主導、并以企業級用戶為主要目標的操作系統。
目前CentOS是網頁服務器用途的主機中最廣為使用的一套Linux發行版。根據統計,目前大約有30%的Linux服務器使用CentOS。許多書籍、網站在介紹Linux的操作方式時,也會援引CentOS作為操作接口。通常CentOS都會在RHEL推出新版本之后,經過一小段時間的修改與測試之后再推出新的版本,而其版本編號大多也會跟隨RHEL的版本編號,例如目前最新版本的CentOS 7,其相對應的RHEL版本便是RHEL 7。
CentOS 7 有很多新特性:
- 包含 Kernel 3.10 版本,支持 swap 內存壓縮可保證顯著減少 I/O 并 提高性能,采用 NUMA (統一內存訪問) 的調度和內存分配,支持 APIC (高級程序中斷控制器) 虛擬化,全面的 DynTick 支持,將內核模塊列入 黑名單,kpatch 動態內核補丁 (技術預覽) 等等
- 引進網絡分組技術作為鏈路聚集的捆綁備用方法,對 NetworkManager 進行大量改進,提供動態防火墻守護進程 firewalld,加入 DNSSEC 域名系統安全擴展,附帶 OpenLMI 用來管理 Linux 系統提供常用的基礎 設施,引進了可信網絡連接功能 (技術預覽)等。
- 引入 Linux 容器 Docker
- 編譯工具鏈方面,包含 GCC 4.8.x、glibc 2.17、GDB 7.6.1。
- MariaDB 5.5、PostgreSQL 9.2
- 在系統和服務上,使用 systemd 替換了 SysV
- 引入 Pacemaker 集群管理器,同時使用 keepalived 和 HAProxy
Jexus web server for linux 是一款基于.NET兼容環境,運行于Linux/unix操作系統之上,以支持ASP.NET為核心功能的高性能WEB服務器,用于替換Apache+mod_mono、Nginx+FastCgi 方案運行ASP.NET,最新的5.6版本已經支持OWIN協議。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服務器。
- 安裝、配置、操作極為簡單,服務社區化,各種問題能得到快速的處理,有良好的后續服務支撐能力。
一、更新系統,安裝編譯環境,為編譯Mono源碼做準備。
1、 更新系統
yum –y update
2、安裝Mono源碼安裝需要的庫
yum -y install wget glib2-devel libtiff libtiff-devel libjpeg libjpeg-devel giflib giflib-devel libpng libpng-devel libX11 libX11-devel freetype freetype-devel fontconfig fontconfig-devel libexif libexif-devel gcc-c++ gettext unzip zip bzip2 bzip2-devel curl-devel gtk2-devel boost-devel
- 3、安裝Mono需要的GDI+兼容API的庫Libgdiplus
- git clone git://github.com/mono/libgdiplus.git
- cd libgdiplus
- ./autogen.sh --prefix=/usr
- make
- make install
- 二、源碼安裝Mono 3.4
- 3.4這個版本官方的源碼包,少了一些文件,以至于安裝會出現問題,具體可以參考 mono-3.4.0 源碼安裝時出現的問題 [do-install] Error 2 [install-pcl-targets] Error 1 解決方法。
- 下載后上傳到/usr/local/src
tar -zxvf mono-3.4.0.tar.gz
./configure --prefix=/usr --libdir=/usr/lib64
這里加上--libdir=/usr/lib64 ,主要是P/Invoke ,具體參考 MONO x64 amd_x64
-
make
make install
-
輸入 mono -V 如有mono版本信息,則安裝成功.
-
如果是64位版本的CentOS,建議你運行下命令ldconfig,建議大家在安裝mono后,都 ldconfig一下 。(ldconfig命令的用途,主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態鏈接庫(格式如前介紹,lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認為/etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表. )
另外有一點也非常重要,要在編譯Mono的是指定安裝到/usr(./configure --prefix=/usr),如果安裝到一個系統根本"不了解"的文件夾,僅ldconfig都不行,還要在/etc/ld.so.conf文件或/etc/ld.so.conf.d 中添加路徑后再 ldconfig才行呢。
三、安裝Jexus 5.5
- 從5.3.1版本開始,Jexus的安裝過程簡化了,內置了兩個新的腳本,它們分別是“install”和“upgrade”,對應原來的“安裝”和“升級”,將Jexus的安裝過程自動化了。jexus本身的安裝和升級方式并沒有發生更多的變化,因此對于已經習慣于5.3.1之前版本的使用方式的用戶,你們仍然可以采用之前的安裝方式。
- wget linuxdot.net/down/jexus-5.6.1.tar.gz
- tar -zxvf jexus-5.6.1.tar.gz
- cd jexus-5.6.1
- ./install
安裝完成~!!!在執行install腳本時,jexus默認是安裝到/usr/jexus/中,如果想安裝到其他目錄,可以在執行該腳本時增加一個目錄的參數(比如 sudu install /usr/local/jexus/)。對于升級就是執行upgrade腳本。
啟動jexus 檢查是否正常了
啟動 /usr/jexus/jws start
停止 /usr/jexus/jws stop
重啟 /usr/jexus/jws restart
自此,使用 http://你的IP/info即可驗證Jexus是否啟動
五、添加為系統服務,隨系統啟動
Zendic 寫的 Centos、Ubuntu 安裝 Mono、Jexus,其中有把Jexus添加為系統服務的代碼:
cd /etc/init.d/ vi jws
按i編輯模式,粘貼下面內容
#!/bin/bash #chkconfig: 2345 80 05 #description:jws # . /etc/rc.d/init.d/functions case "$1" in start) echo "Jexus Start.." /usr/jexus/jws start ;; stop) echo "Jexus Stop.." /usr/jexus/jws stop ;; restart) echo "Jexus Restart" /usr/jexus/jws restart ;; status) /usr/jexus/jws status ;; *) exit 1 ;; esac exit $RETVAL
按ESC后,輸入:wq保存文件
把這個腳本作為“服務”加入
chmod 766 jws
chkconfig --add jws
至此,JEXUS已跟隨系統啟動,可以reboot一下試試看
你也可以通過修改 /usr/jexus/siteconf 里面的文件,來修改站點配置。
文章列表