分享

Ubuntu Apache2 与Tomcat 7 整合步骤

 云中凌 2014-11-29

写在前面

网上已经有很多关于如何整合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

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

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

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


2.安装Tomcat 7

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

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

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


3.安装AJP13并配置

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

  1. 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的值, 配置后如下

  1. 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>之后添加,示例如下

  1. JkUnMount /*.js ajp13_worker  
  2. JkUnMount /*.css ajp13_worker  
  3. JkUnMount /*.htm ajp13_worker  
  4.   
  5. JkUnMount /*.png ajp13_worker  
  6. JkUnMount /*.gif ajp13_worker  
  7. JkUnMount /*.jpg ajp13_worker  
  8. JkUnMount /*.jpeg ajp13_worker  
  1. <pre code_snippet_id="344310" snippet_file_name="blog_20140514_7_6487905" name="code" class="html">    JkMount /*.jsp ajp13_worker</pre> JkMount /*.zsfz ajp13_worker  
  2. <pre></pre>  
  3. <p></p>  
  4. <pre></pre>  
  5. 应该一看就明白了吧, JkUnMount 指定哪些匹配的URL由Apache处理, JkMount指定哪些匹配的URL转给Tomcat处理,如此处配置所有以zsfz,jsp结束的URL转给Tomcat处理. 记得之前叫记得的ajp13_worker有吧 , 在这儿用上了.  
  6. <p></p>  
  7. <p>除了使用JkUnMount与JkMount方式以外, 还有其他的方式. 这儿由读者去扩展学习下吧.</p>  
  8. <p>最后修改好, 别忘了保存.</p>  
  9. <p></p>  
  10. <p></p>  
  11. <p></p>  
  12. <p>至此 , 整合配置完成, 下来是测试了. </p>  
  13. <p>1.在Tomcat的Webapps目录里先删除之前所有的文件(与文件夹), 新建一个ROOT目录, 在ROOT目录里创建一个test.jsp文件, 里面随便加点内容.</p>  
  14. <p>启动Tomcat 通过http://ip_address:8080/test.jsp访问test.jsp,保证测试通过(注意这儿是直接访问Tomcat)</p>  
  15. <p>2.重启Apache2, 命令 /etc/init.d/apache2 restart</p>  
  16. <p>通过http://ip_address/test.jsp访问,若能访问成功并且内容与之前直接访问Tomcat的一致,则说明配置成功(注意: 此处不加端口)</p>  
  17. <p>同理, 你可以放一张图片到apache2的根目录/var/www里, 并直接访问看能成功否. </p>  
  18. <p></p>  
  19. <p>完</p>  
  20. <p>---------------------------------------------------------------------</p>  
  21. <p><strong>有用的扩展</strong></p>  
  22. <p>URL中对中文的支持.(若测试用中文的URL参数会出现乱码, 这是字符编码的问题), 通过设置UTF-8编码来解决</p>  
  23. <p>1.设置Apache默认的字符编码为UTF-8. 在安装完成后进入/etc/apache2/conf.d/目录, 编辑charset文件, 将里面的AddDefaultCharset UTF-8 前面的#号取消并保存, 记得重启.</p>  
  24. <p>2.编辑Tomcat 的conf/server.xml文件, 将里面的AJP13的配置添加URIEncoding="UTF-8" 内容. 添加后如下</p>  
  25. <p></p>  
  26. <pre code_snippet_id="344310" snippet_file_name="blog_20140514_8_8026614" name="code" class="html"><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" /></pre><br>  
  27. OK, 支持中文参数了.  
  28. <p></p>  
  29. <p><br>  
  30. </p>  
  31. <p><br>  
  32. </p>  
  33. <p><br>  
  34. </p>  
  35. <p>参考文章</p>  
  36. <p><a target="_blank" href="http://yr512656630./blog/933458">http://yr512656630./blog/933458</a><br>  
  37. </p>  
  38. <p><a target="_blank" href="http://www.cnblogs.com/junsong/archive/2012/07/03/2574447.html">http://www.cnblogs.com/junsong/archive/2012/07/03/2574447.html</a><br>  
  39. </p>  
  40. <p><br>  
  41. </p>  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多