Windows下面Apache和其他服務器的組合

          Posted on 2006-10-20 13:26 太清劍客 閱讀(795) 評論(0)  編輯  收藏 所屬分類: Server

          apache與IIS的組合。

          apache和IIS都是默認80端口,但是如果你不得不用asp程序的話,不要想著去用iasp之類的東西,還是在服務器安裝IIS吧,安裝以后把IIS修改端口,然后通過代理的方式來訪問IIS,達到不需要顯露端口的目的。

          1、修改Apache配置文件,啟用Proxy模塊;

          LoadModule proxy_module modules/mod_proxy.so
          LoadModule proxy_http_module modules/mod_proxy_http.so

          2、繼續修改Apache配置文件,讓Apache處理對IIS的訪問;(這里假使你用的IIS端口為88)
          ProxyPass /iis/ http://127.0.0.1:88/
          ProxyPassReverse /iis http://127.0.0.1:88

          如果你要使用虛擬主機來實現,可以用下面的代碼,(這里是video.com.cn的)

          <VirtualHost 211.154.103.23:80>
          ServerAdmin blog@video.com.cn
          ServerName blog.video.com.cn
          ProxyPass / http://211.154.103.23:88/
          ProxyPassReverse / http://211.154.103.23:88/
          </VirtualHost>

          apache與resin1的組合。

          在apache的配置文件中加:

          LoadModule caucho_module "x:/resin/srun/win32-1.3.6/mod_caucho.dll"
          <IfModule mod_caucho.c>
          CauchoConfigFile "x:/resin/conf/resin.conf"
          <Location /caucho-status>
          SetHandler caucho-status
          </Location>
          </IfModule>

          AddHandler caucho-request jsp
          <Location /servlet/*>
          SetHandler caucho-request
          </Location>

          apache與resin2的組合。

          在apache的配置文件中加:
          LoadModule caucho_module "x:/resin/srun/win32-1.3.6/mod_caucho.dll"
          <IfModule mod_caucho.c>
          CauchoConfigFile "x:/resin/conf/resin.conf"
          <Location /caucho-status>
          SetHandler caucho-status
          </Location>
          </IfModule>

          apache與resin3的組合。

          在apache的配置文件中加:
          LoadModule caucho_module x:/resin/libexec/apache-2.0/mod_caucho.dll

          <IfModule mod_caucho.c>
          ResinConfigServer localhost 6802
          <Location /caucho-status>
          SetHandler caucho-status
          </Location>
          </IfModule>

          AddHandler caucho-request jsp
          <Location /servlet/*>
          SetHandler caucho-request
          </Location>

          最新版Apache2.2與Tomcat的整合指南

          因為復雜度太高而備受職責的JK2因為開發人員太少而停止了,JK也一年多沒更新了。但不要緊,最新版的Apache2.2中,集成了對tomcat支持的ajp——proxy_ajp模塊。

          本文雖然專門介紹Linux下apache2.2的安裝與配置,但配置部分和說明部分,對windows等平臺也是適用的。

          安裝Tomcat
          Tomcat的安裝,請參考網上其他文章。
          安裝后,
          確認tomcat的配置文件server.xml中,把ajp1.3鏈接配置打開。即Define a Coyote/JK2 AJP 1.3 Connector on port 8009部分。
          運行tomcat

          安裝Apache

          登錄linux,選擇一個目錄,下載apache源代碼:
          wget http://archive.apache.org/dist/httpd/httpd-2.2.2.tar.gz

          解壓縮
          tar fvxz httpd-2.2.2.tar.gz


          進入解壓后的目錄。進行配置:
          ./configure --prefix=/usr/apache --enable-module=most --enable-proxy --enable-proxy-ajp --enable-forward --enable-proxy-connect --enable-proxy-http --enable-so --enable-deflate --enable-headers --enable-include

          上面的配置,用到了其他一些模塊,說不定以后會用到,如支持ssi的include模塊,但這些不是本文的重點。

          編譯(編譯如果不成功,確認一下你的linux是否安裝有編譯所需要的c環境和其他需要的類庫)
          make

          安裝
          make install


          編輯/usr/apache/conf/httpd.conf文件,把端口改一改,一般的,改為80(別跟tomcat的端口沖突)

          進入/usr/apache目錄,運行apache
          ./apachectl -k start

          運行apache后,瀏覽一下是否運行正常。

          關閉apache
          ./apachectl -k stop


          把apache作為linux的啟動就運行服務程序
          執行如下操作:
          cp /usr/apache/bin/apachectl /etc/rc.d/init.d/httpd
          確認linux以前安裝的httpd(apache)不需要了,你可覆蓋掉以前apache的httpd文件。
          chkconfig --add httpd

          別忘了,運行linux的setup,把httpd服務默認設定為自動運行。

          到現在,你就可用另一種方式來啟動、關閉apache了。如
          service httpd start


          配置httpd.conf方法
          老生常談,先配置文件跟路徑,配置監聽端口等。
          下面,就說說配置proxy_ajp了。
          #加載解析模塊(windows下,或linux采用動態加載模式下需配置。前面我們的linux編譯時把下面的模塊嵌入到了apache中,所以不用再加載)
          LoadModule proxy_module modules/mod_proxy.so
          LoadModule proxy_ajp_module modules/mod_proxy_ajp.so


          #禁止使用proxy_ajp代理的目錄:
          ProxyPass /images/ !

          #使用proxy_ajp代理;下面的配置,是把所有目錄全用代理(當然,還會跟上面的禁用配置組合成完整的規則)
          ProxyPass / ajp://127.0.0.1:8009/
          ProxyPassReverse / ajp://127.0.0.1:8009/


          配置到現在,重啟一下apache,就可通過apache來訪問tomcat的服務了。

          其他說明

          1、apache對tomcat的支持歷史:apache第2.1版本后,內置了proxy_ajp,而jk2已經沒人開發了,jk則支持到apache的2.0.58版本。
          proxy_ajp配置較簡單,但可配置性還不如jk2,主要表現在proxy_ajp目前只支持配置到目錄,還不支持對文件名稱的pattern模式匹配(即還不能定義到只對jsp文件起作用)。

          2、因為proxy_ajp的配置,還不支持對文件名稱的pattern模式匹配,所以你要特別注意:
          ——盡量把jsp和靜態文件和圖片路徑分不同的目錄來管理;
          ——對于靜態文件和圖片路徑,如/images,你可用“ProxyPass /images !”來禁止ProxyPass,從而來讓apache來直接處理圖片的請求。
          ——關于apache的ssi(即shtml,include)與tomcat的集成時,shtml文件不能處于ProxyPass的控制下(即不能在ProxyPass目錄),而shtml調用的jsp須在ProxyPass有效控制下;

          寫到這里,最后感嘆一聲,如果proxy_ajp能支持文件名稱匹配模式,那真是太完美了。期待著那一天。


          *****解決apache “internal dummy connection ”的辦法
          在我這里,該問題出現在apache2.2+tomcat 5.5的時候,apache會不斷訪問tomcat,如果是tomcat 4則沒該問題(按樓上的配置)。

          解決辦法是:
          配置的時候,采用-with-mpm=worker方式。

          ./configure --prefix=/usr/apache --enable-module=most --enable-proxy --enable-proxy-ajp --enable-forward --enable-proxy-connect --enable-proxy-http --enable-so --enable-deflate --enable-headers --enable-include -with-mpm=worker


          與tomcat整合的原始出處:http://www.sooq.cn/bbs/thread.jspa?threadID=32375&tstart=0


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

          posts - 10, comments - 4, trackbacks - 0, articles - 0

          Copyright © 太清劍客

          主站蜘蛛池模板: 柳州市| 汉源县| 普定县| 元阳县| 三河市| 长垣县| 绥阳县| 田东县| 湘潭县| 龙泉市| 务川| 玛纳斯县| 遵义县| 永康市| 遵义市| 永安市| 城步| 原阳县| 柳林县| 惠州市| 台中县| 邵阳市| 西林县| 平凉市| 绥滨县| 玉山县| 临桂县| 广州市| 剑河县| 湟源县| 大兴区| 彰化市| 丰原市| 伽师县| 辛集市| 聂拉木县| 金堂县| 沂水县| 铜陵市| 元朗区| 扎囊县|