• 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 了。谢谢大家

  • 相关阅读:
    笔记
    创建和使用URL访问网上资源
    File
    event_1:事件注册
    3_3:创建 元素节点
    动态创建表格
    留言删除案例
    3_2:操作节点 [ 增 删 复制 ]
    5:to do list
    仿新浪下拉菜单
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400379.html
Copyright © 2020-2023  润新知