一、Resin簡介
Resin是CAUCHO公司的產品,是一個非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一個支持HTTP/1.1的WEB服務器。雖然它可以顯示動態內容,但是它顯示靜態內容的能力也非常強,速度直逼apache server。許多站點都是使用該WEB服務器構建的。
Resin也可以和許多其他的WEB服務器一起工作,比如Apache server和IIS等。Resin支持Servlets 2.3標準和JSP 1.2標準。熟悉ASP和PHP的用戶可以發現用Resin來進行JSP編程是件很容易的事情。
Resin支持負載平衡(Load balancing),可以增加WEB站點的可靠性。方法是增加服務器的數量。比如一臺SERVER的錯誤率是1%的話,那麼支持負載平衡的兩個Resin服務器就可以使錯誤率降到0.01%。
版本區別
Resin 普通版本和pro版本主要區別是 pro支持緩存和負載均衡。pro因爲有強大的cache功能,獨立作爲web服務器處理靜態頁面性能都可以和apache有一比。但普通版本獨立作爲web服務器性能就要差一些。當然可以使用apache+resin的方案藉助apache的緩存功能提高性能。 但負載均衡就是普通版不能比的了。
二、環境的準備
因爲resin是java web容器,需要運行在JVM上面,所以我們需先安裝JDK。
# rpm -ivh jdk-7u75-linux-i586.rpm
# vim /etc/profile.d/java.sh
1 2 3 | export JAVA_HOME= /usr/java/default export PATH=$JAVA_HOME /bin :$PATH export CLASSPATH=$JAVA_HOME /lib :$JAVA_HOME /jre/lib |
# . /etc/profile.d/java.sh
三、Resin的安裝
1、Resin的下載
Resin的官方地址:http://caucho.com/
# wget http://caucho.com/download/resin-pro-4.0.44.tar.gz
2、Resin的安裝
Resin這個軟件比較特殊,我們可以直接解壓出來使用,就和tomcat一樣,如果需要和apache結合,或者需要其他一些特性就需要編譯安裝,編譯和其他軟件編譯安裝是一樣的也是非常方便的,因爲沒有特殊的需求,我們這裏就不進行編譯,直接解壓使用。
# tar xf resin-pro-4.0.44.tar.gz -C /usr/local
# mv resin-pro-4.0.44.tar.gz resin
# vim /etc/profile.d/resin.sh
export RESIN_HOME=/usr/local/resin
# . /etc/profile.d/resin.sh
3、Resin的啓動
# /usr/local/resin/bin/resin.sh start
1 2 | Resin /4 .0.44 launching watchdog at 127.0.0.1:6600 Resin /4 .0.44 started -server 'app-0' with watchdog at 127.0.0.1:6600 |
# netstat -tlnp|grep java
1 2 3 | tcp 0 0 ::ffff:127.0.0.1:6600 :::* LISTEN 1926 /java tcp 0 0 :::8080 :::* LISTEN 1971 /java tcp 0 0 ::ffff:127.0.0.1:6800 :::* LISTEN 1971 /java |
4、訪問一下首頁
四、Resin的配置
1、點擊【/resin-admin】進入登陸、註冊頁面,由於首次登陸Resin還沒有用戶,所以先註冊一個管理員賬號;如下圖所示
2、點擊【Create Configuration File】;如若用戶創建成功,提示如下圖所示
3、註冊用戶創建成功後會在/usr/local/resion/conf目錄下生成一個admin-users.xml.generated的模板文件,這個模板不能直接使用,我們需要將其改成爲admin-users.xml文件
4、如果部署到無GUI界面的系統上如:CentOS Solaris Ubuntu-Server等,無法通過瀏覽器訪問本地resin-admin,則需要修改resin.properties文件愛你,開啓遠程訪問權限,然後再次登錄
# vim /usr/local/resin/conf/resin.properties
5、首次登陸後的界面如下:
五、Resin4基於目錄和域名的部署
1、同一個域名下多個子app,根據url層級來指向
http://www.wzlinux.com/
http://www.wzlinux.com/app1
http://www.wzlinux.com/app2
2、多個域名對應指定的host,根據域名來指定
http://www.wzlinux.com/
http://www.a.com/
【第一種配置方法】
1 2 3 4 5 6 7 8 9 10 11 | <!-- the default host, matching any host name --> < host id = "" root-directory = "." > <!-- - webapps can be overridden/extended in the resin.xml --> < web-app id = "/" root-directory = "webapps/ROOT" /> < web-app id = "/api" root-directory = "webapps/app" /> < web-app id = "/app1" root-directory = "/data/www/app1" /> < web-app id = "/app2" root-directory = "/data/www/app2" /> </ host > |
【第二種配置方法】
第一個appserver
1 2 3 4 5 6 7 | < host id = "www.wzlinux.com" root-directory = "." > <!-- - webapps can be overridden/extended in the resin.xml --> < web-app id = "/" root-directory = "webapps/tset1/ROOT" /> </ host > |
第二個appserver
1 2 3 4 5 6 7 | < host id = "www.a.com" root-directory = "." > <!-- - webapps can be overridden/extended in the resin.xml --> < web-app id = "/" root-directory = "webapps/test2/ROOT" /> </ host > |
六、Resin4基於不同端口的部署
1、Resin默認端口是8080;添加如下代碼,在本機配置兩個實例端口爲8081、8082
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | < cluster id = "app1" > <!-- define the servers in the cluster --> < server-multi id-prefix = "app1" address-list = "${app1_servers}" port = "6801" /> <!-- the default host, matching any host name --> < host id = "" root-directory = "." > <!-- - webapps can be overridden/extended in the resin.xml --> < web-app id = "/" root-directory = "/data/www/app1/ROOT" /> </ host > </ cluster > < cluster id = "app2" > <!-- define the servers in the cluster --> < server-multi id-prefix = "app2" address-list = "${app2_servers}" port = "6802" /> <!-- the default host, matching any host name --> < host id = "" root-directory = "." > <!-- - webapps can be overridden/extended in the resin.xml --> < web-app id = "/" root-directory = "/data/www/app2/ROOT" /> </ host > </ cluster > |
2、修改當前目錄vim resin.properties 修改如下內容:
1 2 3 4 5 6 7 8 9 | # app-tier Triad servers: app-0 app-1 app-2 app_servers : 127.0.0.1:6800 app1_servers : 127.0.0.1:6801 app2_servers : 127.0.0.1:6802 # Use overrides for individual server control, for example: app-0.http : 8081 app.http : 8080 app1.http : 8081 app2.http : 8082 |
3、重新啓動Resin服務使其重新加載Resin配置文件
七、整合Resin和apache
1、爲什麼要整合apache
Resin,tomcat對http服務支持不太好
2、安裝apache
# tar zxvf httpd-2.49.tar.gz
# cd httpd-2.49
# ./configure --prefix=/usr/local/httpd --enable-modules=so --enable-so
# make
# make install
3、Resin安裝
# tar zxvf resin-4.0.44.tar.gz
# cd resin-4.0.44
# ./configure --prefix=/usr/local/resin --with-apache=/usr/local/httpd
# make
# make install
此時已經生成Resin連接Apache2的.so文件了,其存在與$APACHE_HOME/modules/mod_caucho.so
此時conf/httpd.conf中就會多出以下語句:
1 2 | LoadModule caucho_modules modules /mod_caucho .so ResinConfigServer localhost 6802 |
分別先後啓動Resin和Apache
端口轉發後訪問:
http://localhost:9000/ 顯示it works
http://localhost:9000/caucho-status 可以看到Resin的狀態頁面
===============================
如果是已經裝好了Resin後要裝Apache(比如Apache要升級了哈)
簡單可以這樣整合,三步:
1:單獨裝完Apache或是升級的更高的版本
2:修改apache/conf/httpd.conf文件
在最後添加
1 2 3 4 5 6 7 | # # mod_caucho Resin Configuration # LoadModule caucho_module /usr/local/apache_2 .2.8 /modules/mod_caucho .so ResinConfigServer localhost 6802 CauchoConfigCacheDirectory /tmp CauchoStatus yes |
另外如果Log 的路徑或是設置了cronlog的也把相應的修改一下
3:之後一定要確保/usr/local/apache_2.2.8/modules/路徑下面有mod_caucho.so模塊
如果沒有要不從老系統Copy一個,要不單獨下Resin源代碼編譯下mod_caucho.so模塊
OK,啓動Resin和Apache就行了。。。。。。
轉載地址:http://blog.51cto.com/wzlinux/1692667