整合 Apache 与 Tomcat

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)。

整合 Apache 与 Tomcat

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/ 访问应用首页,即登录页面。

你可能感兴趣的:(整合 Apache 与 Tomcat)