您的位置:首页 > 运维架构 > Tomcat

Ubuntu Apache2 与Tomcat 7 整合步骤

2014-05-14 11:02 246 查看
写在前面

网上已经有很多关于如何整合Apache2与Tomcat的文章(有写的不错的), 但有时看与实践往往有些差距, 所谓实践出真知. 要真的去做了, 才是真正的懂.

以下是昨天刚实践的, 以此总结, 以后少走弯路.

软件及版本

Ubuntu 12.04(64位)

Apache 2.2.22

Tomcat 7.0.55

AJP13 mod_jk-1.2.31-httpd-2.2.x

仅在一台机器上配置, 只有一个Tomcat(若有两个及以上的Tomcat, 需要修改workers.properties).

整合步骤

1.安装Apache2与OpenJDK

这两个安装只需要执行下面的命令即可

apt-get install apache2
安装后在浏览器输入http://ip_address 测试下是否正确

apt-get install openjdk-7-jre-headless


安装后执行java -version 命令测试下JDK安装是否正确

2.安装Tomcat 7

到Tomcat 7的下载页面http://tomcat.apache.org/download-70.cgi 去下载. 在Ubuntu系统中使用wget下载,命令如下

wget http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.53/bin/apache-tomcat-7.0.53.tar.gz[/code]下载后使用tar命令解压. 并运行测试下.

此处使用默认的8080端口与 AJP13的8009端口.

3.安装AJP13并配置

AJP13是连接Apache2与Tomcat的连接器. 通过mod_jk来实现,命令如下

apt-get install libapache2-mod-jk
安装后到/etc/libapache2-mod-jk目录, 查看下有没有workers.properties

使用vi workers.properties命令编辑该文件.

需要修改以下几个地方

1). 修改workers.tomcat_home与workers.java_home的值为正确的路径 (这一步是可选,但建议配置上)

2). 在worker.list后面添加jk-status,jk-manager的值, 配置后如下

worker.list=ajp13_worker,jk-status,jk-manager
(若不加上这两个值为在apache2启动后看到一些警告信息)

jk-status与jk-manager用于监控mod_jk的运行与管理(默认只能在本机才能访问)

其他的使用默认值, 在这儿可以看到默认已经创建了一个名叫ajp13_worker 的worker. 记住这名字, 以后为用到.

修改后记得保存.

4.配置拦截规则

此处最重要,用于指定哪些URL由Apache处理, 哪些URL需要转给Tomcat处理.(建议规则为: 所有静态的资源由Apache处理,如图片,JS,CSS, 动态的转给Tomcat处理,如加载数据,业务处理部分)

进入/etc/apache2/sites-available目录.编辑default文件(命令vi default)

在</VirtualHost>标签之前与最后一个</Directory>之后添加,示例如下

JkUnMount /*.js ajp13_worker
JkUnMount /*.css ajp13_worker
JkUnMount /*.htm ajp13_worker

JkUnMount /*.png ajp13_worker
JkUnMount /*.gif ajp13_worker
JkUnMount /*.jpg ajp13_worker
JkUnMount /*.jpeg ajp13_worker
JkMount /*.jsp ajp13_worker
JkMount /*.zsfz ajp13_worker



应该一看就明白了吧, JkUnMount 指定哪些匹配的URL由Apache处理, JkMount指定哪些匹配的URL转给Tomcat处理,如此处配置所有以zsfz,jsp结束的URL转给Tomcat处理. 记得之前叫记得的ajp13_worker有吧 , 在这儿用上了.

除了使用JkUnMount与JkMount方式以外, 还有其他的方式. 这儿由读者去扩展学习下吧.

最后修改好, 别忘了保存.

至此 , 整合配置完成, 下来是测试了.

1.在Tomcat的Webapps目录里先删除之前所有的文件(与文件夹), 新建一个ROOT目录, 在ROOT目录里创建一个test.jsp文件, 里面随便加点内容.

启动Tomcat 通过http://ip_address:8080/test.jsp访问test.jsp,保证测试通过(注意这儿是直接访问Tomcat)

2.重启Apache2, 命令 /etc/init.d/apache2 restart

通过http://ip_address/test.jsp访问,若能访问成功并且内容与之前直接访问Tomcat的一致,则说明配置成功(注意: 此处不加端口)

同理, 你可以放一张图片到apache2的根目录/var/www里, 并直接访问看能成功否.



---------------------------------------------------------------------

有用的扩展

URL中对中文的支持.(若测试用中文的URL参数会出现乱码, 这是字符编码的问题), 通过设置UTF-8编码来解决

1.设置Apache默认的字符编码为UTF-8. 在安装完成后进入/etc/apache2/conf.d/目录, 编辑charset文件, 将里面的AddDefaultCharset UTF-8 前面的#号取消并保存, 记得重启.

2.编辑Tomcat 的conf/server.xml文件, 将里面的AJP13的配置添加URIEncoding="UTF-8" 内容. 添加后如下

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


OK, 支持中文参数了.

参考文章

/article/3860529.html

http://www.cnblogs.com/junsong/archive/2012/07/03/2574447.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: