zoukankan      html  css  js  c++  java
  • tomcat + apache 动静分离

    原文地址:http://blog.csdn.net/gengv/article/details/5739438


    从网上查了不少资料,想了解一下如何整合Apache和Tomcat,以便让Apache的httpd负责静态内容,让Tomcat负责动态内容的部分。

    参考文章:

    http://tomcat.apache.org/connectors-doc/generic_howto/quick.html
    http://code-worker.javaeye.com/blog/246993
    http://www.qqread.com/php/n652282101.html
    http://tomcat.apache.org/connectors-doc/reference/workers.html

    我自己试了一下,把具体过程记录下来,以备今后查看。


    1. 安装Apache Http Server、Tomcat、Tomcat Connector(JK Module)

    • Apache Httpd:从网上下载Apache Http Server 2.2.15的安装版(貌似没有免安装压缩版)。安装时可以选择将其安装为系统服务或者每次手动启动。我只是测试,所以选择了后者,但后者默认将会监听 8080端口,注意不要与Tomcat默认的8080端口冲突了。这一项可以稍后在配置文件中修改。
    • Tomcat:可以选择免安装压缩版(我用的是6.0.18版),很方便,可以注册为系统服务。
    • JK Module:从http://tomcat.apache.org/download-connectors.cgi找到binary下载,下载目前最 新版1.2.30文件mod_jk-1.2.30-httpd-2.2.3.so,将其改名为mod_jk.so,置于Apache Http Server安装目录下的modules目录中。


    2. 新建workers.properties文件

    可以参考:http://tomcat.apache.org/connectors-doc/generic_howto/quick.html

    这个worker.properties可以置于任何目录下,我把它直接放在了Apache Http Server的安装目录下。

    # 为mod_jk模块指明Tomcat的安装路径
    workers.tomcat_home=D:/DevSoft/apache-tomcat-6.0.18
    # 为mod_jk模块指明JDK的安装路径
    workers.java_home=C:/Program Files/Java/jdk1.6.0_20

    # 添加一个worker到worker列表
    worker.list=worker1

    # 为worker1设定各个参数

    # 工作端口,Tomcat的默认Connector监听端口,可以查看Tomcat的Server.xml中有port="8009"
    worker.worker1.port=8009
    # Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP
    worker.worker1.host=localhost
    # worker的类型,允许的值为ajp13、ajp14、lb、status等;ajp13是mod_jk连接WebServer和Tomcat的首选方式(即使用socket作为通信渠道)
    worker.worker1.type=ajp13
    # 负载平衡因子
    worker.worker1.lbfactor=1

    注:worker.list中worker的名字应该是对应到Apache Http Server的httpd.conf配置文件中的JkMount的(后面详述)。


    3. 修改Apache Http Server的httpd.conf配置文件

    修改Apache Http Server安装目录下的conf目录下的httpd.conf文件:

    # 载入mod_jk模块,注意模块文件的路径
    LoadModule jk_module modules/mod_jk.so
    # 声明workers.properties文件的位置
    JkWorkersFile "C:/Program Files/Apache Software Foundation/Apache2.2/workers.properties"
    # 声明mod_jk的日志文件位置
    JkLogFile "C:/Program Files/Apache Software Foundation/Apache2.2/logs/mod_jk.log"
    # 声明mod_jk的日志级别(可选)
    JkLogLevel info
    # 声明mod_jk的日志的时间戳格式(可选)
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

    # 将/*.action和/*.jsp类型的请求都分配给Tomcat,其余类型的有Apache Http Server自己处理
    # 注意JkMount后面的worker1即对应worker.properties文件中worker.list里的worker的名称
    JkMount /*.action worker1
    JkMount /*.jsp worker1

     

    4. 修改DirectoryRoot

    网上的文章大多只写到上面就结束了,动态的内容交给Tomcat之一步算是完成了,但静态内容的分配还需接着设置httpd.conf文件。

    查找到DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"这一行,并将其值替换为Web应用的路径:

    DocumentRoot "D:/DevSoft/apache-tomcat-6.0.18/webapps"


    查找到<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">这一行,并将其值替换为Web应用的路径:

    <Directory "D:/DevSoft/apache-tomcat-6.0.18/webapps">

    至此,动态内容和静态内容的请求分配,才基本完成。

  • 相关阅读:
    mysql 添加索引 mysql 如何创建索引
    给MongoDB添加索引
    Istio流量管理实现机制深度解析
    Oracle E-Business Suite R12.1.x Installation And Upgrade Guide Step by Step
    XXX 不是当前用户的有效责任,请联系您的系统管理员
    EBS报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本
    Oracle 表类型变量的使用
    Oracle物化视图
    Oracle EBS
    Oracle释放高水位线
  • 原文地址:https://www.cnblogs.com/1995hxt/p/5095324.html
Copyright © 2011-2022 走看看