文档章节

整合 Apache 与 Tomcat

黄勇
 黄勇
发布于 2013/10/11 20:44
字数 586
阅读 1548
收藏 11

1. 问题描述

将以下原始 URL 优化为目标 URL,并分离静态请求与动态请求。

原始 URL:http://localhost:8080/www/page/login.html

目标 URL:http://smart/

2. 解决方案

整合 Apache 与 Tomcat,借助 Tomcat Connector(JK)来实现,需开启 Tomcat 的 AJP 协议。在 Apache 中导入 JK 模块,配置虚拟主机,使用 URL 重写规则,配置 JK 转发映射。使用 Apache 接收静态请求(如:html、css、js、图片等),使用 Tomcat 接收动态请求(如:AJAX)。

3. 操作步骤

3.1 配置 Tomcat

3.1.1 修改 server.xml 文件

...
<Connector port="8009" protocol="AJP/1.3" redirectPort="18443" />
...

说明:

  • 开启 AJP13 协议(去掉 Connector 的注释)。

  • 可添加 URIEncoding="UTF-8",可解决 GET 请求中文乱码问题(可选)。

3.2 配置 Apache

3.2.1 下载 mod_jk

下载地址:http://tomcat.apache.org/download-connectors.cgi

注意:需要针对操作系统与 Apache 的版本下载相应的二进制包。

3.2.2 修改 httpd.conf 文件

...
LoadModule rewrite_module modules/mod_rewrite.so
...
Include conf/extra/httpd-vhosts.conf
...
Include conf/extra/httpd-jk.conf

说明:

  • 加载 mod_rewrite,用于配置 URL 重写(去掉 mod_rewrite.so 的注释)

  • 开启虚拟主机去掉 httpd-vhosts.conf 的注释

  • 集成 mod_jk(添加 httpd-jk.conf 配置)。

3.2.3 创建并编辑 httpd-jk.conf 文件

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log
JkLogLevel info

说明:

  • 加载 mod_jk 模块。

  • 关联 workers 配置文件。

  • 配置 mod_jk 日志文件与日志级别。

3.2.4 创建并配置 workders.properties 文件

worker.list=tomcat

worker.tomcat.type=ajp13
worker.tomcat.host=localhost
worker.tomcat.port=8009

说明:

  • 配置 worker 名称为 tomcat。

  • 配置 worker 类型、主机名、端口号。

3.2.5 修改 httpd-vhost.conf 文件(配置虚拟主机)

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName "smart"
    DocumentRoot "D:\Workspace\smart\smart-sample\src\main\webapp\www"

    ErrorLog "logs/smart-error.log"
    CustomLog "logs/smart-access.log" common

    <Directory "D:\Workspace\smart\smart-sample\src\main\webapp\www">
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    RewriteEngine on
    RewriteRule ^/$             /login.html     [R]
    RewriteRule ^/(.*)\.html$   /page/$1.html   [PT]

    JkMount     /*              tomcat
    JkUnMount   /asset/*        tomcat
    JkUnMount   /page/*         tomcat
    JkUnMount   /script/*       tomcat

    ErrorDocument 404 /login.html
</VirtualHost>

说明:

  • 配置域名(名为:smart)。

  • 配置文档路径,指向静态文档根目录(www 目录)。

  • 配置目录访问权限。

  • 配置 URL 重写规则。

  • 配置 JK 映射规则,将静态请求交给 Apache,将动态请求交给 Tomcat。动态请求就是 AJAX 请求。

  • 配置错误代码响应页面。

3.3 启动服务器

分别启动 Tomcat 与 Apache。

3.4 配置域名映射

打开 C:\Windows\System32\Drivers\etc\hosts 文件,添加如下配置:

127.0.0.1 smart

3.5 访问应用

使用 http://smart/ 访问应用首页,即登录页面。

© 著作权归作者所有

共有 人打赏支持
上一篇: 再论代码生成器
下一篇: 软件设计原则
黄勇

黄勇

粉丝 6464
博文 121
码字总数 216155
作品 1
浦东
CTO(技术副总裁)
私信 提问
加载中

评论(4)

光石头
光石头
我们是nginx+tomcat
黄勇
黄勇

引用来自“沈健”的评论

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
用这个比较多吧

没错,通过 Apache 的 mod_proxy 也可以整合 Tomcat。
沈健
沈健
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
用这个比较多吧
沈健
沈健
现在可以不用mod_jk来整合apache和tomcat了
appach 和tomcat 之间的关系(1)

Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。   Apache是web服务器(静态解析,...

Reborn-D
2016/11/14
34
0
Apache与Tomcat 区别联系

Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。 apache是web服务器(静态解析,如H...

长平狐
2013/01/06
86
0
Apache与Tomcat的整合配置方式

本文内容转载整理自《Apache HTTP Server 与 Tomcat 的三种连接方式介绍》(http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/) Apache与Tomcat整合的优势有以下几点:...

Neron.L
2012/01/17
0
0
jsp静态和动态分开处理apache+tomcat

Apache是当前使用最为广泛的WWW服务器软件,具有相当强大的静态HTML处理的能力。 Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)...

卢水发
2013/04/24
0
0
1、apache与tomcat的整合

简介: apache作为主流的web服务软件之一,可以作为独立的web服务器来运行,但是只能支持静态网页,对于动态网页(asp,jsp,php,cgi等)的处理则显得无能为力。tomcat也可以作为独立的web服务器...

CARYFLASH
2017/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

搜索引擎(Solr-索引详解)

时间字段类型特别说明 Solr中提供的时间字段类型( DatePointField, DateRangeField,废除的TrieDateField )是以时间毫秒数来存储时间的。 要求字段值以ISO-8601标准格式来表示时间:YYYY-MM...

这很耳东先生
22分钟前
0
0
Java成神之路

1、基础篇 01、面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台无关性 Java 如何实现的平台无关 JVM 还支持哪些语言(Kotlin、Groovy、JRuby...

asdf08442a
52分钟前
2
0
dubbo源码分析-服务导出

简介 dubbo框架spring Schema扩展机制与Spring集成,在spring初始化时候加载dubbo的配置类。 dubbo服务导出的入口类是ServiceBean的onApplicationEvent方法 ServiceBean的继承关系如下 publ...

王桥修道院副院长
58分钟前
0
0
QQ音乐的动效歌词是如何实践的?

本文由云+社区发表 作者:QQ音乐技术团队 一、 背景 1. 现状 歌词浏览已经成为音乐app的标配,展示和动画效果也基本上大同小异,主要是单行的逐字染色的卡拉OK效果和多行的滚动效果。当然,我...

腾讯云加社区
58分钟前
4
0
idea里配置springboot项目打热部署

首先添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional></dependency> 然后添......

shatian
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部