apache tomcat mod_js配置整合,

          http://blog.sina.com.cn/s/blog_3c9872d00102w00y.html
          Apache與Tomcat整合應用是一個老話題,不算新技能,但對非運維人員在配置過程中或許也會遇到一些問題。這里只是把自己多回配置的過程做一個摘錄,供自己翻閱并望對過路的人有用。
          Apache是當下在Windows、Unix、Linux 等操作系統中最流行的Web服務器軟件之一,其反應速度快、運行效率高,不僅支持HTML等靜態頁面,在加載插件后也可支持 PHP 頁面等。Tomcat是Apache軟件基金協會與Sun公司聯合開發的Web服務器,除支持HTML靜態頁面外,還是JSP、Servlet等JAVA WEB應用的服務器。在相同運行環境下,Tomcat對靜態頁面的反應速度沒有Apache靈敏,整合 Apache與Tomcat能使系統運行于一個良好環境下,實現JAVA的動態與靜態頁面分離,不僅讓系統更安全,同時也可提高系統效率。

          一、JAVA應用基礎架構

          通用的JAVA應用架構如下,包括WEB Server、APP Server和DB Server三個部分:
          Apache和Tomcat整合配置實現JAVA應用的“動靜”分離
          1、WEB Server
          WEB Server置于企業防火墻外,這個防火墻也可以認為是一個CISCO路由器,在CISCO路由器上開放兩個端口為:80和443,其中:
          80端口:用于正常的http訪問
          443端口:用于https訪問,即如果你在ie里打入https://xxx.xxx.xx這樣的地址,默認走的是443這個端口
          WebServer專門用于解析HTML、JS(JavaScript)、CSS、JPG/GIF等圖片格式文件、TXT、VBSCRIPT、PHP等“靜態”網頁內容。
          2、APP Server
          APP Server置于企業防火墻內,它和Web Server之間的連接必須且一定為內部IP連接。App Server用于解析我們的任何需要Java編譯器才能解析的“動態”網頁,其實App Server本身也能解析任何靜態網頁的。在應用中我們這樣來想一下:我們讓負責專門解析靜態網頁的Web Server來解析html等內容,而讓App Server專門用于解析任何需要Java編譯器才能解析的東西,讓它們各司其職。這樣作的好處:
            1)為App Server“減壓”,同時也提高了性能;
            2)不用再把8080這個端口暴露在internet上,也很安全,畢竟我們的App Server上是有我們的代碼的,就算是編譯過的代碼也容易被“反編譯”,這是很不安全的;
            3)為將來進一步的“集群擴展”打好了基礎。
          3、DB Server
           比方說我們用MySQL,它需要通過3306與App Server進行連接,那么這個1521我們稱為數據庫連接端口,如果把它暴露在Internet上就比較危險,就算密碼很復雜,但 對于高明的黑客來說,要攻破你的口令也只是時間上的問題而己。因此我們把我們的DB Server也和App Server一樣,置于內網的防火墻,任何的DB連接與管理只能通過內網來訪問。
          二、系統安裝與配置
          系統安裝包括MySQL的安裝,WEB Server即Apache的安裝,App Server即Tomcat的安裝。關于這三個系統安裝網上相關的文檔很多,此處略去。以下主要摘錄需要重點配置的內容。
          1、Apache的配置
          做技術的人應該都會Apache的基礎配置,如果不會確實需要學一學。
          Apache的配置主要集中在httpd.conf文件中,它位于Apache的安裝目錄下,比如我的是在“C:\webserver\apache\apache22\conf”目錄下。用Ultraedit或Notepad++編輯器打開文件,通常需要修改的內容包括ServerName、DocumentRoot、VirtualHost內容等。此處我修改的內容包括:
          1)DocumentRoot原目錄為C:/webserver/apache/apache22/htdocs,修改為D:/WWW/apache/htdocs,將網站發布路徑與Apache安裝路徑分開;
          2)找到如下紅色標示內容:
              Options FollowSymLinks
              AllowOverride None
              Order deny,allow
              deny from all
          把這個”deny from all”改成”allow fromall’。
              Options FollowSymLinks
              AllowOverride None
              Order deny,allow
              allow from all
          以免訪問Apache根目錄下的文件時出現以下錯誤提示:
          Apache和Tomcat整合配置實現JAVA應用的“動靜”分離
          3)再找到下面這樣的行
          Options FollowSymLinks indexes
          把它注掉改成下面這樣
          #Options FollowSymLinks indexes
          Options None
          以免在訪問Apache目錄時出現直接列表顯示子目錄或目錄下文件的不安全情況,如下圖樣子:
          Apache和Tomcat整合配置實現JAVA應用的“動靜”分離
          以上配置修改完成后重啟Apache服務,保證要能正常運行。
          三、Apache與Tomcat的整合配置
          Apache(Web Server)負責處理HTML靜態內容,Tomcat(App Server)負責處理動態內容;原理圖如下:
          Apache和Tomcat整合配置實現JAVA應用的“動靜”分離
          上述架構的原理是: 在Apache中裝載一個模塊,這個模塊叫mod_jk; Apache通過80端口負責解析任何靜態web內容; 任何不能解析的內容,用表達式告訴mod_jk,讓mod_jk派發給相關的App Server去解釋。
          因此,首先把 mod_jk-1.2.31-httpd-2.2.3(可從網上搜索下載該模塊,如http://download.csdn.net/detail/shangkaikuo/4494837)拷貝到 "/Apache2.2/modules" 目錄下。接下來:
          1、添加workers.properties文件
          在 “/Tomcat 8.0/conf ” 文件夾下(也可以是其它目錄下)增加 workers.properties 文件,輸入以下內容。(將其中相應目錄替換成自己本地tomcat或jre安裝目錄)
           #讓mod_jk模塊認識Tomcat
           workers.tomcat_home=d:/webserver/tomcat/tomcat8
           #讓mod_jk模塊認識JRE
           workers.java_home=C:/java/jdk1.8.0_45/jre
           #指定文件路徑分割符
           ps=/
           ##
           #工作端口,此端口應該與server.xml中Connector元素的AJP/1.3協議所使用的端口相匹配
           worker.list=AJP13
           worker.AJP13.port=8009
           #Tomcat服務器的地址
           worker.AJP13.host=localhost
           #類型
           worker.AJP13.type=ajp13
           #負載平衡因數
           worker.AJP13.lbfactor=1

          **注意:worker.list=AJP13中,AJP13為自定義名稱,但此名稱必須與下文所述的 “/Apache 2.2/conf/httpd.conf ” 文件中,JkMount指令對應的名稱相匹配。
          2、httpd.conf文件中添加配置內容
          加入workers.properties文件后,可修改 “/Apache 2.2/conf/httpd.conf ” 文件,加入以下配置,注意JkMount指令中的變量必須與worker.list所配置的名稱相同。

          # 此處mod_jk-1.2.31-httpd-2.2.3文件為你下載的文件
          LoadModule  jk_module  modules/mod_jk-1.2.31-httpd-2.2.3.so
          # 指定tomcat監聽配置文件地址
          JkWorkersFile  "C:/webserver/tomcat/tomcat8/conf/workers.properties"
          #JkWorkersFile  "C:/webserver/apache/apache22/conf/workers.properties"
          # 指定日志存放位置
          JkLogFile  "C:/webserver/tomcat/tomcat8/logs/mod_jk2.log"
          JkLogLevel  info
          -virtualhost *-
              ServerName  localhost
              DocumentRoot  "C:/webserver/tomcat/tomcat8/webapps"
              DirectoryIndex  index.html index.htm index.jsp index.action
              ErrorLog  logs/shsc-error_log.txt
              CustomLog  logs/shsc-access_log.txt common
              JkMount  /*WEB-INF AJP13
              JkMount  /*j_spring_security_check AJP13
              JkMount  /*.action AJP13
              JkMount  /servlet/* AJP13
              JkMount  /*.jsp AJP13
              JkMount  /*.do AJP13
              JkMount  /*.action AJP13
          -/virtualhost-

          上述配置中的紅色內容是為了告訴Apache哪些交給Tomcat去處理,其它的都交由Apache自身去處理。
          其中綠色的兩句比較關鍵,分別告訴:Apache載入一個額外的插件,用于連接tomcat;  連接時的配置參數描述位于Tomcat安裝目錄的/conf目錄下的一個叫workers.properties文件中,mod_jk一般使用ajp13協議連接,使用的是tomcat的8009端口。
          完成以上配置后,重啟 Apache、Tomcat。此時Apache、Tomcat的默認目錄為 "C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps ”,Apache使用默認的80端口、Tomcat端口改成1080或其它非8080默認端口(修改是為了安全,也可以不用修改)。在Tomcat默認目錄下添加test目錄,在該目錄下加入index.jsp頁面,然后通過http://localhost/test/index.jsp試試是否可以正常訪問,如頁面可正常訪問,證明整合配置已經成功。
          至此,似乎整個配置工作已經完成,但是如果你想試著把靜態的HTML頁面放到Apache的htdocs發布目錄下,把JSP等動態內容放到Tomcat的webapps目錄下(該目錄下不存放*.html文件),然后通過http://localhost/index.html想訪問Apache目錄下的內容,你會發現404之類的不能訪問的錯誤。如何解決,這里暫時賣個關子.......如果你能看出問題,能容易解決掉,就誠摯為你點個贊!
           

          posted on 2016-06-19 20:42 youngturk 閱讀(217) 評論(0)  編輯  收藏 所屬分類: 筆試題

          <2016年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導航

          統計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結構
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 昌平区| 孝义市| 香格里拉县| 寻甸| 兴和县| 鹤岗市| 都安| 竹山县| 松潘县| 饶阳县| 临海市| 邹平县| 安岳县| 马尔康县| 谢通门县| 称多县| 灵丘县| 繁昌县| 芜湖县| 舒兰市| 曲沃县| 沁源县| 金堂县| 江门市| 辽阳市| 手机| 延长县| 泰宁县| 灌云县| 乳源| 平顶山市| 阿巴嘎旗| 斗六市| 云梦县| 同德县| 阳城县| 巴彦淖尔市| 兰坪| 辽宁省| 含山县| 揭东县|