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">
至此,动态内容和静态内容的请求分配,才基本完成。
tomcat + apache 动静分离的更多相关文章
- 15 nginx反向代理实现nginx+apache动静分离
一:nginx反向代理实现nginx+apache动静分离-------------概念--------------------------- nginx反向代理服务器+负载均衡 用nginx做反向代 ...
- Nginx网络架构实战学习笔记(三):nginx gzip压缩提升网站速度、expires缓存提升网站负载、反向代理实现nginx+apache动静分离、nginx实现负载均衡
文章目录 nginx gzip压缩提升网站速度 expires缓存提升网站负载 反向代理实现nginx+apache动静分离 nginx实现负载均衡 nginx gzip压缩提升网站速度 网页内容的压 ...
- Apache+Tomcat实现动静分离
完成Tomcat集群搭建后,我们只需修改两.三处即可实现动静分离. 1.将原来httpd.conf中JkMount的路由规则都放入conf/extra/httpd-urimap.conf中: /*=l ...
- Apache+tomcat配置动静分离(一个apache一个tomcat,没有做集群)
1. 下载apache http server,tomcat,mok_jk.so apache下载地址:http://httpd.apache.org/download.cgi tomcat下载地址: ...
- Ngigx+Tomcat配置动静分离,负载均衡
由于公司使用过Ngnix,对于刚接触Nginx来说,感觉有些好奇,于是研究了下. 本人在windows下使用的版本是nginx-1.8.1: 1. 启动Ngnix 双击nginx-1.8.1文件夹中n ...
- nginx+tomcat网页动静分离配置
1.环境描述 nginx server (Proxy):192.168.1.135(作为代理服务器)WEB server1: 192.168.1.138(使用tomcat作为web容器)WEB ser ...
- Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)
在 nginx 中,proxy 用来实现反向代理,upstream 用来实现负载均衡. 例如有两台服务器,nginx 服务器作为代理服务器,执行 .html 文件,apache 服务器上执行 .php ...
- nginx+tomcat实现动静分离
本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 Nginx 并且在 B 上安装 Tomcat.配置 Nginx,当请求的是 ...
- nginx+tomcat实现动静分离(转)
本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 Nginx 并且在 B 上安装 Tomcat.配置 Nginx,当请求的是 ...
随机推荐
- redis数据库的安装配置
redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括strin ...
- 动态代理和AOP
之前说过了我对IOC的理解,这篇文章说以下我对动态代理和基本的对AOP的理解. 所谓动态代理就是,在运行时,动态创建实现了一组指定接口的实现类对象. 比如有: interface A { } inte ...
- 裸机——wdt
1. 首先晓得看门狗的基本知识 看门狗是带复位功能的定时器,用于在系统跑飞时复位系统. 接下来按照上次的知识对看门狗进行推导 看门狗的关键词是 定时器 复位 定时器 关键是 时间段 中断 时间段 关键 ...
- url_maneger.py
coding=UTF-8 # url管理器 class urlManeger: def __init__(self): self.new_urls = set() self.old_urls = se ...
- 10,before_request 和 after_request
Flask我们已经学习很多基础知识了,现在有一个问题 我们现在有一个 Flask 程序其中有3个路由和视图函数,如下: from flask import Flask app = Flask(__na ...
- [bzoj1552][Cerc2007]robotic sort&&[bzoj3506][Cqoi2014]排序机械臂
非常垃圾的一道平衡树,结果被日了一天.很难受嗷嗷嗷 首先不得不说网上的题解让我这个本来就不熟悉平衡树的彩笔很难受——并不好理解. 还好Sinogi大佬非常的神,一眼就切掉了,而且用更加美妙的解法. 题 ...
- 2-安装linux7
1.操作系统简介 操作系统: 桌面操作系统 redhat fedora slackware ubuntu debian suse linux centos 服务器操作系统 linux redhat s ...
- Postman-进阶(2)
Postman-进阶(2) Postman-简单使用 Postman-进阶使用 Postman-CI集成Jenkins 管理请求 保存请求-添加“打开百度首页请求” 设置请求方式为Get,地址为www ...
- 《Cracking the Coding Interview》——第6章:智力题——题目4
2014-03-20 01:02 题目:无力描述的一道智力题,真是货真价实的智力题,让我充分怀疑自己智力的智力题.有兴趣的还是看书去吧. 解法:能把题目看懂,你就完成80%了,用反证法吧. 代码: / ...
- elk-logstash: window下指定jdk目录
\bin\logstash.bat文件中, SETLOCAL的后面,CALL "%SCRIPT_DIR%\setup.bat" 的前面增加一行: @echo off SETLOCA ...