zoukankan      html  css  js  c++  java
  • CentOS5.3 编译 mod_jk 1.2.15 链接器 整合apache httpd 和 tomcat


    现在我们来做一个整合,也就是当访问 apache 80 端口时候 遇到 jsp 文件也可以正常访问。

    如果不整合, 你的apache 80 是不能运行jsp文件的, 只能使用8080端口,也就是tomcat 来访问。

    如何整合呢 ? 要借助一个叫做 apache tomcat 的链接器。

    下面是官方网站的下载地址,目前为止最新版是 1.2.15。。。
    http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/source/jk-1.2.15/

    文章最后我会把这个工具提供下载,如果官方网站太慢的话。

    首先下载 jakarta-tomcat-connectors-1.2.15-src.tar.gz 到服务器
    解压
    ]# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz

    注意是进入: jk/native 这个目录
    ]# cd jakarta-tomcat-connectors-1.2.15-src/jk/native

    请确认你的 apache 的 apxs 文件位置
    native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs

    编译生成mod_jk
    native]# make

    拷贝编译完成生成的 mod_jk.so 文件, 这里也是要注意你的apache modules 目录位置
    native]# cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/
    ===============================================
    修改 apache 配置文件

    # vi /etc/httpd.conf

    在DirectoryIndex中添加 index.jsp

    <IfModule dir_module>
    DirectoryIndex index.html index.jsp
    </IfModule>
    增加关于加载mod_jk的语句:

    #Load jsp
    #by luinstein 20090825
    LoadModule jk_module modules/mod_jk.so
    Include /etc/httpd/conf.d/mod_jk.conf

    #指出mod_jk模块工作所需要的工作文件workers.properties的位置
    JkWorkersFile /etc/httpd/conf.d/workers.properties

    ###### Where to put jk logs
    JkLogFile /etc/httpd/logs/mod_jk.log

    ###### Set the jk log level [debug/error/info]
    JkLogLevel info

    ###### Select the log format
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

    ###### JkOptions indicate to send SSL KEY SIZE,
    JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories

    ###### JkRequestLogFormat set the request format
    JkRequestLogFormat "%w %V %T"

    ###### 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
    JkMount /servlet/*  worker1
    JkMount /*.jsp worker1
    JkMount /*.jspx worker1
    JkMount /*.do worker1

    ------------------------------------------------------------

    ===另一种写法

    LoadModule jk_module modules/mod_jk.so

    <IfModule mod_jc.c>
    JkWorkersFile "/opt/httpd/conf/mod_jk.peroperties"
    JkLogFile "/var/log/httpd/mod_jk.log"
    JkLogLevel debug
    </IfModule>

    <IfModule mod_jk.c>
    JkMount /*.jsp ajp13
    JkMount /*.do ajp13
    JkMount /servlet/* ajp13
    </IfModule>

    Alias /library "/opt/app/library/"
    <Directory "/opt/app/library/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

    -------

    # vi workers.properties

     添加以下内容:

    ####### Defining a worker named worker1 and of type ajp13
    worker.list=worker1

    ####### Set properties for worker1
    worker.worker1.type=ajp13
    worker.worker1.host=localhost
    worker.worker1.port=8009
    worker.worker1.lbfactor=50
    worker.worker1.cachesize=10
    worker.worker1.cache_timeout=600
    worker.worker1.socket_keepalive=1
    worker.worker1.socket_timeout=30

    -----另外一种配置---

    workers.tomcat_home=/opt/tomcat
    workers.java_home=/usr/java/jdk1.6.0_17
    ps=/
    worker.list=worker1
    worker.worker1.port=8009
    worker.worker1.host=localhost
    worker.worker1.type=ajp13
    worker.worker1.lbfactor=1
    worker.locadbalancer.type=lb
    worker.loadbalancer.balanced_workers=worker1
    worker.inprocess.type=jni
    worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
    worker.inprocess.cmd_line-start
    worker.inprocess.jvm_lib=$(workers.jave_home)$(ps)jre$(ps)lib$(ps)
    i386$(ps)classic$(ps)libjvm.so
    worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
    worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr

    -------------------
    tomcat 配置文件路径:
    /etc/tomcat5/server.xml


    最后编辑Tomcat的配置文件server.xml,建立虚拟主机

    <Host name="www.njupt.org.cn"  appBase="webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
    <!-- SingleSignOn valve, share authentication between web applications
    Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->
    <!-- Access log processes all example.
    Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
    -->
    <Context path="" docBase="/var/www/projects/njupt.org.cn" debug="0" reloadable="true"
    crossContext="true"/>
    </Host>

    重新启动Apache和Tomcat。。。

    刚才我在修改 httpd.conf 可能写入了一些多余信息 导致apache配置文件出错,我注释就可以了。

    在 /var/www/projects/njupt.org.cn 下 删掉 index.html

    建立一个index.jsp ,

    写入一些简单的内容:

    <%
    out.println( "Hello " );
    %>
    用浏览器访问服务器 http://localhost,看到正确的页面了。

    说明 apache 遇到jsp页面 ,它可以提交给 tomcat 去处理。。。

    这样就可以整合了 apache 和 tomcat 了。谢谢大家

  • 相关阅读:
    Proj THUDBFuzz Paper Reading: The Art, Science, and Engineering of Fuzzing: A Survey
    Proj THUDBFuzz Paper Reading: A systematic review of fuzzing based on machine learning techniques
    9.3 付费代理的使用
    11.1 Charles 的使用
    第十一章 APP 的爬取
    10.2 Cookies 池的搭建
    10.1 模拟登录并爬取 GitHub
    11.5 Appium 爬取微信朋友圈
    11.4 Appium 的基本使用
    11.3 mitmdump 爬取 “得到” App 电子书信息
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400379.html
Copyright © 2011-2022 走看看