设为首页 收藏本站
查看: 830|回复: 0

[经验分享] windows tomcat+apache 整合

[复制链接]
YunVN网友  发表于 2018-6-17 12:44:50 |阅读模式
  linux和windows下整合思想是相同的,利用apache来解析*.html/*.htm
  静态网页,当遇到*.jsp和servlet时,通过一个apache中的module把jsp页面抛给Tomcat(或者
  resin)来处理,在linux下通过编译来制作这个module,要麻烦一些,本文通过现成的win下的一
  个module来完成整合。
  Tomcat的安装
  安装目录为
  d:\server\tomcat
    下面设置环境变量:(貌似不设也行)
    同jdk的环境变量,添加变量TOMCAT_HOME,值为d:\server\tomcat;增加变量CATALINA_HOME,值为
  d:\server\tomcat,在path变量中加入%TOMCAT_HOME%\bin
    启动tomcat.
    在IE中输入http://localhost:8080/,看到大猫的吧,则tomcat安装成功.
  Tomcat和Apache的整合配置
    Tomcat只是一个用来解析*.jsp文件的容器,它不是服务器,其解析静态htm/html文件的能力远远不如apache,
  整合后在同一个端口使apache来解析静态网页,而遇到*.jsp网页时,交由tomcat来解析.
   第一步:把 mod_jk.dll复制到apache根目录module文件夹下。
   第二步:配置APACHE
   打开apache根目录下conf\httpd.conf
  添加以下语句:
      #------------------------------------------
     #connecting to tomcat using ajp13
     LoadModule jk_module modules/mod_jk.dll
     JkWorkersFile "d:/server/tomcat/conf/workers.properties"
     JkMount /servlet/* ajp13
     JkMount /*.jsp ajp13
     #-----------------------------------------------------
    注意:以上语句的基本意思是:
    loadModule一行:加载mod_jk.dll动态链接库模块,使之与tomcat通讯
    jkWorkersFile:指明工作时tomcat相关文件workers.properties位置
    jkMount:两行指明当遇到*.jsp和servlet时,交由ajp13协议,继而转发给tomcat处理。
   第三步:建立workers.properties文件,在tomcat根目录conf下建立workers.properties文件,内容为:
  workers.tomcat_home=d:\server\tomcat
  workers.java_home=d:\server\j2sdk1.4.0
  ps=\
  # worker.list=ajp13
  worker.list=ajp12,ajp13
  worker.ajp12.port=8007
  worker.ajp12.host=localhost
  worker.ajp12.type=ajp12
  worker.ajp12.lbfactor=1
             
  worker.ajp13.port=8009        
  worker.ajp13.host=localhost     
  worker.ajp13.type=ajp13
  worker.ajp13.lbfactor=1
  worker.loadbalancer.type=lb
  worker.loadbalancer.balanced_workers=ajp12, ajp13
  worker.inprocess.type=jni
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)classes
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jaxp.jar
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)parser.jar
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)jasper.jar
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)servlet.jar
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)webserver.jar
  worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
  worker.inprocess.cmd_line=-config
  worker.inprocess.cmd_line=$(workers.tomcat_home)/conf/jni_server.xml
  worker.inprocess.cmd_line=-home
  worker.inprocess.cmd_line=$(workers.tomcat_home)
  worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
  worker.inprocess.stdout=$(workers.tomcat_home)$(ps)inprocess.stdout
  worker.inprocess.stderr=$(workers.tomcat_home)$(ps)inprocess.stderr
  worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home)
  注意以上文件第一、二行填上tomcat和jdk的相关目录.
  
   第四步:配置tomcat/conf下的server.xml文件,这个是tomcat的主要配置文件,重要配置如下:
     1.虚拟目录设置:
      找到下面内容:
      <Host name=&quot;localhost&quot; debug=&quot;0&quot; appBase=&quot;/webapps&quot;
        unpackWARs=&quot;true&quot; >
     修改为:
     <Host name=&quot;localhost&quot; debug=&quot;0&quot; appBase=&quot;d:/server/www&quot;
        unpackWARs=&quot;true&quot; >
     使tomcat主目录为d:\server\www.
     找到下面内容:
     <Context path=&quot;examples&quot; docBase=&quot;/examples&quot; debug=&quot;0&quot;

                 >     修改为
     <Context path=&quot;&quot; docBase=&quot;/&quot; debug=&quot;0&quot;

                 >     这个我的理解是应该是使tomcat根目录下的jsp作为一个虚拟主机吧.
    2.设置tomcat监听端口,找到下面的内容:

    <Connector>          port=&quot;8080&quot;     minProcessors=&quot;5&quot; maxProcessors=&quot;75&quot;
                enableLookups=&quot;true&quot; redirectPort=&quot;8443&quot;
                acceptCount=&quot;100&quot; debug=&quot;0&quot; connectionTimeout=&quot;0&quot;
                useURIValidationHack=&quot;false&quot; disableUploadTimeout=&quot;true&quot; />
     默认的端口是8080,但这个大家都知道,最好修改一下,假设修改为:8123,则如下:

    <Connector>          port=&quot;8123&quot;     minProcessors=&quot;5&quot; maxProcessors=&quot;75&quot;
                enableLookups=&quot;true&quot; redirectPort=&quot;8443&quot;
                acceptCount=&quot;100&quot; debug=&quot;0&quot; connectionTimeout=&quot;0&quot;
                useURIValidationHack=&quot;false&quot; disableUploadTimeout=&quot;true&quot; />
    3.找到以下8009端口的地方,这个很重要,通过8009,tomcat与apache互相通讯,如果下面的部分
  被<!---->注释掉,一定要把<!---->去掉.
     <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->

     <Connector>                port=&quot;8009&quot; minProcessors=&quot;5&quot; maxProcessors=&quot;75&quot;
                enableLookups=&quot;true&quot; redirectPort=&quot;8443&quot;
                acceptCount=&quot;10&quot; debug=&quot;0&quot; connectionTimeout=&quot;0&quot;
                useURIValidationHack=&quot;false&quot;
                protocolHandlerClassName=&quot;org.apache.jk.server.JkCoyoteHandler&quot;/>
     第五步:配置tomcat的conf/web.xml文件:
     类似于apache下404错误页面的配置,在最后</web-app>一行之前加入以下内容:
     
        <error-page>
         <error-code>404</error-code>
         <location>/error/noFile.htm</location>
       </error-page>
       <error-page>
        <exception-type>java.lang.NullPointerException</exception-type>
        <location>/error/error.jsp</location>
       </error-page>
       第一个<error-page></error-page>之间的是404未找到jsp网页的错误导向页面,使之发生404错误时,
  网页导向至/error/noFile.htm,也可以用类似方法添加其多的错误代码导向页面。
       第二个<error-page></error-page>之间的是当jsp网页出现java.lang.NullPointerException导常时
  导向至/error/error.jsp错误页面。那么需要在第个jsp网页中加入以下内容:
       <%@ page  errorPage=&quot;/error/error.jsp&quot; %>
       典型的error.jsp错误页面的程序写法如下:
  
     <%@ page contentType=&quot;text/html;&quot;%>
     <%@ page isErrorPage=&quot;true&quot;%>
     <html>
     <head><title>错误页面</title></head>
     <body>
     出错了:</p> 错误信息: <%= exception.getMessage() %><br>
     Stack Trace is : <pre><font color=&quot;red&quot;><%
     java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
     java.io.PrintWriter pw = new java.io.PrintWriter(cw,true);
     exception.printStackTrace(pw);
     out.println(cw.toString());
     %></font></pre>
     </body>
     </html>
         当出现NullPointerException异常时tomcat会把网页导入到error.jsp,且会打印出出错信息。
         第五步主要是安全考虑,在正常情况下,如果找不到网页即出现404错误或者jsp程序出错,在客户端
     会列举出类似于如下的信息(以tomcat为例,resin类似):
       HTTP Status 404 - /sdags.jsp
       --------------------------------------------------------------------------------
       type Status report
       message /sdags.jsp
       description The requested resource (/sdags.jsp) is not available.
        --------------------------------------------------------------------------------
       Apache Tomcat/5.0.19
     
       这样服务器版本会被别人看到,如果完成第五步的配置,就不会出现这种情况.
     第六步:配置httpd.conf文件
     这种方法把tomcat和apache的根目录设置为同一目录,但是必须限制客户对目录下一些文件的访问,比如存入class
  的web-inf,在httpd.conf下添加以下代码:
         #deny the access to WEB-INF
     <Directory ~ &quot;/WEB-INF/&quot;>
           Order allow,deny
           Deny from all
     </Directory>
      这样,当试图记问http://localhost/web-inf/时,apache将会拒绝.
     
      到此为至,tomcat和apache的整合就完成啦.重新启动tomcat和apache,
  把jsp网页放到d:\server\www\下,例如:
      <html>
     <h1>JSP test<hr>
     <%out.println(&quot;Hello World!&quot;);%>
     </html>
     存为index.jsp,在IE中输入http://localhost:8080/index.jsp
     如果出现了
     Hello World!
     刚说明tomcat运行正常,在IE中输入http://localhost/index.jsp,如果也出现
     Hello World!
     恭喜你!整合成功啦!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-524944-1-1.html 上篇帖子: Windows loopback接口抓包 下篇帖子: Spotlight on Windows有关设置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表