Ubuntu下配置apache与Tomcat整合

本贴最后更新于 3009 天前,其中的信息可能已经渤澥桑田

软件及版本

  1. Ubuntu 14.04(x64)
  2. apache 2.4.7
  3. tomcat8
  4. AJP13 mod_jk

仅配置一台机器只运行一个 tomcat 的情况

整合步骤

1. 安装 Apache2

apt-get install apache2

安装好之后在浏览器输入 http://127.0.0.1/查看是否安装正确

2. 安装 tomcat

不做赘述

3. 安装 AJP13 并配置

AJP13 是 apache 与 tomcat 整合必不可少的模块。通过命令安装

apt-get install libapache2-mod-jk

安装完成后切换目录到 ajp13 的目录下

cd /etc/libapache2-mod-jk

使用 vim 编辑 workers.properties

vim workers.properties

修改如下几处:

  1. workers.tomcat_home = 你安装的 tomcat 路径
  2. workers.java_home = JAVA_HOME 路径
  3. worker.list = ajp13_worker,jk-status,jk-manager (添加 jk-status 与 jk-manager)

4. 配置 apache

根据需求对 URL 进行拦截配置,指定 apache 与 tomcat 的职责。

我个人的建议是所有静态资源(.js/.css/.jpg/.png……)交给 apache 处理,所有动态资源交给 tomcat 处理。

进入 apache 安装目录下的 sites-enabled 目录

cd /etc/apache2/sites-enabled

修改 000-default.conf 文件

vim 000-default.conf

编辑 <VirtualHost:80> 标签

增加(如果存在则修改)ServerName 为 localhost

ServerName = localhost

增加(如果存在则修改)DocumentRoot 的值,假设我的项目文件在/tomcat/webapps/ROOT 内,则将 DocumentRoot 的值就设置为此

DocumentRoot = /tomcat/webapps/ROOT

然后,增加拦截设置

JkUnMount /*.js ajp13_worker
JkUnMount /*.css ajp13_worker
JkUnMount /*.html ajp13_worker

JkUnMount /*.png ajp13_worker
JkUnMount /*.gif ajp13_worker
JkUnMount /*.jpg ajp13_worker
JkUnMount /*.jpeg ajp13_worker

JkMount /*.jsp ajp13_worker
JkMount /* ajp13_worker

该设置的意思是,所有 js、css、html、png、gif、jpr、jpeg 文件都交给 apache 处理(JkUnMount),所有 jsp 文件和所有的请求,都交给 tomcat 处理

保存并退出

5. 使用

重启 apache

/etc/init.d/apache2 restart

访问 http://127.0.0.1/查看项目的启动情况

6. 可能出现的问题

  1. 所有 tomcat 的请求都能接收并正确处理,但是静态文件无法加载

    解决: 检查 DocumentRoot 的路劲是否正确,webapps 项目文件夹的权限是否可访问

  2. 中文编码有问题

    解决:

    1. 进入 apache 安装目录下的 conf-enabled 目录,修改 AddDefaultCharset 的值为 UTF-8
      AddDefaultCharset UTF-8

    2. 进入 tomcat 安装目录下的 conf 目录,增加 server.xml 内关于 ajp13 的配置项 URIEncoding='UTF-8'

      <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>

7. 感谢

感谢博主 monkeyking1987 的文章:Ubuntu Apache2 与 Tomcat 7 整合步骤,给了我很大的参考。


# 请尽情使用吧
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 588 回帖
  • 教程
    143 引用 • 602 回帖 • 8 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...