西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → Resin windows版安裝配置及使用教程

Resin windows版安裝配置及使用教程

相關(guān)文章發(fā)表評論 來源:西西整理時間:2015/1/7 14:12:53字體大�。�A-A+

作者:西西點(diǎn)擊:468次評論:0次標(biāo)簽: Resin

  • 類型:服務(wù)器區(qū)大�。�25.8M語言:中文 評分:5.0
  • 標(biāo)簽:
立即下載

Resin是一個提供高性能的,支持 Java/PHP 的應(yīng)用服務(wù)器。目前有兩個版本:一個是GPL下的開源版本,提供給一些愛好者、開發(fā)人員和低流量網(wǎng)站使用;一種是收費(fèi)的專業(yè)版本,增加了一些更加適用于生產(chǎn)環(huán)境的特性。

Resin也可以和許多其他的WEB服務(wù)器一起工作,比如Apache Server和IIS等。Resin支持Servlets 2.3標(biāo)準(zhǔn)和JSP 1.2標(biāo)準(zhǔn)。熟悉ASP和PHP的用戶可以發(fā)現(xiàn)用Resin來進(jìn)行JSP編程是件很容易的事情。

Resin支持負(fù)載平衡,可以增加WEB站點(diǎn)的可靠性。方法是增加服務(wù)器的數(shù)量。比如一臺Server的錯誤率是1%的話,那么支持負(fù)載平衡的兩個Resin服務(wù)器就可以使錯誤率降到0.01%。到目前為止,Resin對WEB應(yīng)用的支持已經(jīng)遠(yuǎn)遠(yuǎn)超過Tomcat等各種大型的Server。

最快的JSP、Servlet服務(wù)器(Resin)
5.0
類別: 服務(wù)器區(qū)    大�。�25.8M    語言: 中文
查看詳細(xì)信息 >>

Resin的一些特性:

可靠性:Resin包含了很多可靠的特性,包括服務(wù)器自動重啟、檢測并重啟死鎖的服務(wù)器、管理JVM內(nèi)存以防止內(nèi)存泄露等。

集群:Resin可以將多個服務(wù)器作為一個服務(wù)器來對客戶進(jìn)行響應(yīng),從而增強(qiáng)服務(wù)器的擴(kuò)展能力。

持久和分布的sessions:持久的session能夠在服務(wù)器重啟的時候保持現(xiàn)有的Http會話,分布式的session可以在多個服務(wù)器之間共享Http會話的狀態(tài)。

增強(qiáng)的本地代碼:同時為Windows和Linux系統(tǒng)提供了本地的代碼增強(qiáng)支持。能夠改善Socket鏈接、持久鏈接和文件讀寫方面的性能。

OpenSSL:提供原生的OpenSSL庫支持,比JSSE提供的方案要好很多。

HTTP代理緩存:能夠通過內(nèi)存和磁盤緩存系統(tǒng)提高服務(wù)器的性能表現(xiàn),將動態(tài)頁面的速度提高到接近靜態(tài)頁面。

Gzip過濾器:通過gzip來減少帶寬。

Resin服務(wù)器的安裝(Windows - 獨(dú)立版)

1、安裝JDK1.7或更高

2、確保JDK的安裝以及正確設(shè)置了環(huán)境變量JAVA_HOME

3、解壓Resin文件

4、執(zhí)行 java –jar resin-3.1.8/lib/resin.jar

5、或者運(yùn)行 http.exe

6、在瀏覽器地址欄中輸入 http://localhost:8080 即可進(jìn)行訪問

我們也可以將Resin設(shè)置為系統(tǒng)服務(wù)。

虛擬機(jī)的配置

Resin的配置文件位于 ./conf/ 下,默認(rèn)的配置文件為 resin.conf。

配置簡單的虛擬機(jī),我們只要加入

  <host host-name="test.heep.com" root-directory="D:\workspaces\java\testsys"> 
    <access-log path="logs/test.access.log" 
          format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' 
          rollover-period="1W"/>

    <web-app id="/" root-directory="WebRoot/">

    </web-app> 
  </host> 
</cluster>

另外在host文件中加入對應(yīng)的記錄,這樣,我們就可以訪問 http://test.heep.com 了!

Resin的配置案例如下:(Linux系統(tǒng))

本文resin采用版本為:Resin 2.1.13
本文所有代碼均已測試通過

我的工程目錄結(jié)構(gòu)如下:

/(root)
    |--resin(resin根目錄)
    |        |--bin
    |        |--conf
    |        |      |--resin.conf(resin配置文件 今天的主角)
    |        |--lib
    |--src
          |--java(用于放置java源文件)
          |--test(測試文件目錄)
          |--webapp(web應(yīng)用的根目錄,將來doc-dir會指向這里)
                    |---WEB-INF
                                |------classes
                                |------lib
                                |------web.xml(web配置文件)
                                |------applicationContext.xml(其他配置文件)


以下是resin.conf文件源碼

<caucho.com>
<log id='/logs' href='stderr:' timestamp='[%Y-%m-%d %H:%M:%S.%s]'/>

<http-server error-log="logs/errors.log">
    <doc-dir>../src/webapp</doc-dir>
  
  <!-- the http port -->
  <http port='82'/>

  <host id=''>
    <web-app id='/'>
        <work-dir>../../build/work</work-dir>
        <temp-dir>../../build/tmp</temp-dir>
        <cache-mapping url-pattern="/*" expires="2"/>
        <class-update-interval>
            100000000
        </class-update-interval>
        <jsp jsp-update-interval="1s"/>
        
        <classpath id='WEB-INF/classes'/>     

    </web-app>    
  </host>

</http-server>
</caucho.com>

web.xml源代碼:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

    <display-name>Acme Corp</display-name>

    <filter>
        <filter-name>webwork</filter-name>
        <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>webwork</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <!--
        This typically isn't required, as the taglib is included in webwork.jar.
        If you really need a taglib configuration within web.xml, copy webwork/src/java/META-INF/taglib.tld
        to the WEB-INF directory as webwork.tld.
     -->
    <!--taglib>
        <taglib-uri>webwork</taglib-uri>
        <taglib-location>/WEB-INF/webwork.tld</taglib-location>
    </taglib-->
</web-app>

在慢速機(jī)器上的Resin啟動:
RESIN是一個JAVA應(yīng)用,啟動過程中需要消耗大量的CPU資源。因此在一些比較慢的機(jī)器上或者按照以上的配置有時候會很奇怪的啟動不起來,在stderr.log中顯示:"can't connect to parent",這個問題可以通過在服務(wù)啟動后加上一個15秒的延時解決:
在/etc/init.d/resin: 43行左右:
if test -n "$USER"; then
su - $USER -c "$EXE -pid $PID start $ARGS"
else
$EXE -pid $PID start $ARGS
fi
#服務(wù)啟動后,加上一個15秒的延時解決
sleep 15

問題解決過程和思路:

先檢查resin的日志:stderr.log,里面有can't connect to parent,然后在google上查"resin2 can't connect to parent"和"resin can't connect to parent",大約有幾篇郵件列表歸檔吧,在一篇郵件列表歸檔中有技術(shù)支持說正在調(diào)整服務(wù)等待時間解決類似問題(需要改SOURCE),另外一個人說他的P4服務(wù)器啟動時需要啟動很多消耗CPU的服務(wù),也會導(dǎo)致RESIN啟動不了,然后我在自己的機(jī)器上嘗試了一下,在RESIN啟動前就登錄到機(jī)器上,發(fā)現(xiàn)啟動時RESIN和PERL腳本其實(shí)都運(yùn)行了,但過了一會兒相應(yīng)進(jìn)程就退出了,在啟動后系統(tǒng)比較平穩(wěn)了,再啟動RESIN,RESIN服務(wù)就是好的,說明說明腳本本身沒有問題,按我以前的經(jīng)驗(yàn),JAVA應(yīng)用是一個比較吃CPU資源的類型,為了讓RESIN有足夠的CPU資源的啟動,在啟動后我增加了15秒的延遲,以防止后續(xù)服務(wù)影響RESIN的啟動。問題就解決了,而且在其他機(jī)器上試也成功了。

當(dāng)然,最好還是CAUCHO解決了這個問題大家就都不用學(xué)這些小技巧了。因此我將類似中所有的BUG報告中提交了自己的解決方案,要求在init.resin腳本中增加一個全局變量,允許用戶設(shè)置啟動時的等待時間。并把這個解決思路追加到文檔中,讓大家能夠用自己的行動積極支持開源軟件。

利用Resin內(nèi)置的日志輪循,HTTP壓縮,緩存和簡單HTTP認(rèn)證

作為應(yīng)用服務(wù)器,很多功能都不用自己再開發(fā)了:建議把這些和應(yīng)用服務(wù)器相關(guān)的配置放在resin.conf里,而和應(yīng)用服務(wù)器無關(guān)的Web應(yīng)用的標(biāo)準(zhǔn)配置放在WEB-INF/web.xml中。

  <host id='example.chedong.com'>
    <access-log id='logs/example_access.log'>
      <!--rotate log daily-->
      <rollover-period>1D</rollover-period>
    </access-log>

    <error-log id='logs/example_error.log'>
      <rollover-period>1M</rollover-period>
    </error-log>

    <web-app id='/' app-dir='/www/myapp/'>
      <classpath id='WEB-INF/classes' source='WEB-INF/src' compile='true'/>

      <!--http compress-->
      <filter-mapping url-pattern='/result'
                  filter-name='com.caucho.http.filter.GzipFilter'/>

      <!--admin need authorization-->
      <login-config auth-method='basic'>
        <authenticator>
          <class-name>com.caucho.http.security.XmlAuthenticator</class-name>
          <init-param user='myname:password:user'/>
        </authenticator>
      </login-config>
      <security-constraint url-pattern='/admin' role-name='user'/>
    </web-app>
  </host>

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)