如何整合apache tomcat8 整合与Tomcat

3350人阅读
java(28)
Tomcat(2)
apache2(1)
网上已经有很多关于如何整合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的下载页面&去下载. 在Ubuntu系统中使用wget下载,命令如下
wget /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来实现,命令如下
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, 支持中文参数了.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:316046次
积分:2828
积分:2828
排名:第10089名
原创:56篇
评论:260条
(1)(1)(2)(1)(1)(1)(1)(1)(1)(1)(1)(3)(1)(1)(1)(3)(1)(3)(2)(2)(4)(2)(1)(2)(1)(1)(1)(1)(2)(1)(3)(1)(1)(5)(2)(2) 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Apache+php+tomcat整合
下载积分:30
内容提示:Apache+php+tomcat整合
文档格式:PDF|
浏览次数:167|
上传日期: 21:24:05|
文档星级:
该用户还上传了这些文档
Apache+php+tomcat整合
官方公共微信zhangjunhd 的BLOG
用户名:zhangjunhd
文章数:110
评论数:892
访问量:3174633
注册日期:
阅读量:5863
阅读量:12276
阅读量:375988
阅读量:1069165
51CTO推荐博文
& Tomcat是一个JSP容器,Apache是一个Web Server,通常将Tomcat与Apache绑定在一起,由Tomcat处理用户的动态内容请求,由Apache处理用户的静态内容请求. 1.安装Tomcat6[1]在[url]http://tomcat.apache.org/download-60.cgi[/url]下载Binary Distributions Core版本的tar.gz.[2]解压之后即可使用.在Linux下,启动和停止Tomcat分别使用脚本%TOMCAT_HOME%/bin/startup.sh%TOMCAT_HOME%/bin/shutdown.sh[3]验证安装[3.1]执行startup.sh[3.2]在浏览器下输入[url]http://localhost:8080/[/url]后出现650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" alt="" src="../attachment/495719.jpg" border="0" />说明安装成功.2.配置Apache2(RedHat下缺省安装)[1]可在Apache官方网站下载并编译安装Apache.[2]启动[root@localhost ~]# /etc/init.d/httpd start[3]验证安装[3.1]新建hello.html,放置在/var/www/html下&html&&&&&&head&&title&Hello&/title&&/head&&& &body&&p&Hello&/body&&&&&&/html& [3.2]在浏览器下输入[url]http://localhost/hello.html/[/url]后出现Hello说明安装成功.3.将Tomcat绑定到Apache[1]下载tomcat-connectors在[url]http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/[/url]下根据自己Apache版本和硬件环境选择适当的版本,将该链接文件改名为mod_jk.so将其放在/etc/httpd/modules目录下.[2]修改/etc/httpd/conf目录下httpd.conf,在文件末尾加入#for tomcatinclude "/usr/local/apache2/conf/mod_jk.conf"[3]新建/usr/local/apache2/conf/mod_jk.conf,内容为#Load mod_jk moduleLoadModule jk_module modules/mod_jk.so#Where to find workers.propertiesJkWorkersFile conf/workers.properties#Where to put jk logsJklogFile logs/mod_jk.log#Set the jk log level[debug/error/info]JkLogLevel info#Select the log formatJkLogStampFormat "[%a %b %d %H:%M:%S %Y] "#JkOptions indicate to send SSL KEY SIZE,JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories#JkRequestLogFormat set the request formatJkRequestLogFormat "%w %V %T"#Send servlet for context /examples to worker named ajp13#JkMount /servlet/* ajp13#Send JSPs for context /examples to worker named ajp13JkMount /*.jsp ajp13[4]配置worker在/etc/httpd/conf/下新建workers.properties文件,其内容为worker.list=ajp13worker.ajp13.port=8009worker.ajp13.host=localhostworker.ajp13.type=ajp13worker.ajp13.lbfactor=1[5]重起Apache/etc/init.d/httpd restart如果出现:启动 httpd:Syntax error on line 2 of /usr/local/apache2/conf/mod_jk.conf:Cannot load /etc/httpd/modules/mod_jk.so into server: /etc/httpd/modules/mod_jk.so: invalid ELF header则说明mod_jk.so的版本错误.[6]验证安装[6.1]在%TOMCAT_HOME%/webapps/ROOT下新建一个JSP文件hello.jsp,其内容为&html&&&&&&head&&title&Hello&/title&&/head&&& &body&&%java.util.Date currentTime = new java.util.Date();%&&%=currentTime%&&/body&&&&&&/html& [6.2]在浏览器下输入[url]http://localhost/hello.jsp[/url]即可得到当前系统时间,说明安装成功.本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
18:35:29 13:54:00 13:37:22 10:31:04 23:42:09sookk 的BLOG
用户名:sookk
文章数:170
评论数:112
访问量:1095171
注册日期:
阅读量:5863
阅读量:12276
阅读量:375988
阅读量:1069165
51CTO推荐博文
  要求:
  运行多个tomcat,通过apache侦听的端口进行区分。
  对于每个tomcat,配置各自需要服务的虚拟主机
  使用Apache的Proxy进行代理转发,转到对应的tomcat上面,重点在端口不同
  取消jk连接,减少复杂度。虽然损失了一些Apache对静态文本的性能,但整体看还是值得的
  结果:
  tomcat的server.xml里面配置了各自的虚拟主机,比如
和 。第一个是主域名,第二个是二级域名。tomcat端口为8080。第二个tomcat配置了一个
用来支持销售,端口为8081。详细的配置文件请参考tomcat的虚拟主机配置,这里就不写了。
  测试各个虚拟主机的运行是否正常,使用 http:// :8080/ 这样的方式进行测试。
apache的 httpd.conf配置
打开代理所需要的.so支持模块,在httpd.conf里面,取消下面四行的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
制作各自的虚拟主机
NameVirtualHost *:80 
&VirtualHost *:80&
ServerName
ProxyPass /
ProxyPassReverse /
&/VirtualHost&
&VirtualHost *:80&
ServerName
ProxyPass /
ProxyPassReverse /
&/VirtualHost&
&VirtualHost *:80&
ServerName
ProxyPass /
ProxyPassReverse /
&/VirtualHost&
若需要内部端口整合
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
现在我们编辑第一个tomcat配置文件,端口为默认的8080
&Engine name=&Catalina& defaultHost=www.aaa.com&
&Host name= appBase==&//htdocs& unpackWARs=&true& autoDeploy=&true& xmlValidation=&false& xmlNamespaceAware=&false&
&Host name=www. appBase==&//htdocs& unpackWARs=&true& autoDeploy=&true& xmlValidation=&false& xmlNamespaceAware=&false& /&
源码编译安装proxy-ajp模式的
# tar xvjf httpd-2.2.0.tar.bz2
# cd httpd-2.2.0
# cd srclib/apr
# ./configure --prefix=/server/soft/apr
# make install
安装apr-util
# cd ../apr-util/
# ./configure --prefix=/server/soft/apr-util \
&&& --with-apr=/server/soft/apr
# make install
# cd ../../
安装apache
# ./configure --prefix=/server/soft/apache \
&&& --enable-so \
&&& --enable-rewrite=share \
&&& --enable-proxy=share \
&&& --enable-proxy-ajp=share \
&&& --enable-dav=share \
&&& --with-apr=/server/soft/apr \
&&& --with-apr-util=/server/soft/apr-util/
# make install
注意:网站文件请分别放在/www/*/htdocs/ROOT目录
&Host name=&localhost& appBase=&webapps& unpackWARs=&true& autoDeploy=&true& xmlValidation=&false& xmlNamespaceAware=&false&&& /&
编辑第二个tomcat配置文件,端口修改为8081
&Engine name=&Catalina& defaultHost=localhost&
注意:网站文件放在tomcat安装文件目录的默认ROOT目录
localhost这里可以不用修改,因为只有一个网站,我们就可以不用域名代替
附出错分析:
如果编译安装没有编辑代理模块的解决办法
方法如下:
编译的时候要打开WITH_PROXY_MODULES选项,但我又不想重新安装apache,所以使用以下步骤达到此目的。
1、重新编译带有proxy模块的apache,但不安装。
进入源代码目录
#cd /usr/loacl/src/httpd2.2.9
#make WITH_PROXY_MODULES=yes
<font style="background-color: #ffffff" face="Verdana" color="#. 分别编译生成代理模块
&&& cd modules/proxy
&& /usr/local/apache/bin/apxs -c -i -a& mod_proxy.so proxy_util.c
&& /usr/local/apache/bin/apxs -c -i -a& mod_proxy_ajp.so mod_proxy_ajp.c
&& /usr/local/apache/bin/apxs -c -i -a& mod_proxy_connect.so mod_proxy_connect.c
&& /usr/local/apache/bin/apxs -c -i -a& mod_proxy_http.so mod_proxy_http.c
&& /usr/local/apache/bin/apxs -c -i -a& mod_proxy_ftp.so mod_proxy_ftp.c
这样就编译进了apache配置文件
编译过程中或者会出错,因为权限原因,需要给755权限
chmod 755 /usr/local/apache/modules/*.so
查看httpd.conf文件显示已经添加了代理模块
以下是httpd.conf的部分显示
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php5_module&&&&&&& modules/libphp5.so
LoadModule proxy_module&& modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module& modules/mod_proxy_http.so
LoadModule proxy_ftp_module&& modules/mod_proxy_ftp.so
已经添加进了apache,现在需要重新启动apache,就可以正常配置代理方式了
#配置(prefix是安装路径,enable-mods-shared=all表示编译配置所有so文件)
./configure --prefix=/usr/local/apache --enable-mods-shared=all
&php编译案例:
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php5 --disable-debug --enable-ftp --enable-inline-optimization --enable-magic-quotes --enable-mbstring --enable-safe-mode --enable-wddx=shared --with-gd --with-gettext --with-regex=system --with-zlib --with-mcrypt --enable-sockets
单独编译apache可以进行这样的操作
[root@localhost apache]#./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=&proxy proxy_http proxy_ftp proxy_connect headers&
[root@localhost apache]# make
检查编译后的是否有编译出so文件
[root@localhost apache]# cd /usr/local/apache/modules
[root@localhost modules]#]# ls
httpd.exp&&&&&& mod_proxy_ajp.so&&&&&& mod_proxy_connect.so mod_proxy_http.so
mod_headers.so mod_proxy_balancer.so mod_proxy_ftp.so&&&&& mod_proxy.so
如果存在以上文件则说明编译成功
[root@localhost apache]# make install
启动APACHE
[root@localhost apache]# /usr/local/apache/bin/httpd -k start
测试如果输出IT works那么就ok了
tomcat 404页面设置方法在web.xml里面加入
&&&& &error-page&
&&&&&&&&&&&&& &error-code&404&/error-code&
&&&&&&&&&&&&& &location&/404.jsp&/location&
&&&&& &/error-page&
添加404.jsp页面文件,重新启动tomcat可生效本文出自 “” 博客,谢绝转载!
了这篇文章
类别:┆阅读(0)┆评论(0)
10:19:50 22:56:26 15:39:05apache tomcat 整合 apachetomcat如何整合Apache与Tomcat_apachetomcat
[apachetomcat]如何整合Apache与Tomcat——简介如何整合Apache与Tomcat[apachetomcat]如何整合Apache与Tomcat——知识点安装apache :/article/4f7da2119275e.html配置apache: /article/acf728fde410a35f.html安装tomcat:/article/636f38bb5fe8e9d6b946105f.html[apachetomcat]如何整合Apache与Tomcat——详细知识[apachetomcat]如何整合Apache与Tomcat 一安装apache,下图为安装apache步骤,见百度经验/article/4f7da2119275e.html配置apache,见百度经验/article/acf728fde410a35f.html安装两个或多个tomcat,见百度经验/article/636f38bb5fe8e9d6b946105f.html[apachetomcat]如何整合Apache与Tomcat 二下载mod_jk.so,不能放链接如下图[apachetomcat]如何整合Apache与Tomcat 三把mod_jk-1.2.31-httpd-2.2.3手工copy进我们的Apache安装目录的modules目录下,这个文件的全名叫: mod_jk-1.2.31-httpd-2.2.3.so,我将文件名修改为mod_jk.so[apachetomcat]如何整合Apache与Tomcat 四如下图的架构,下面是原理1)Apache装有一个模块,这个模块叫mod_jk2)Apache通过80端口负责解析任何静态web内容3)任何不能解析的内容,用表达式告诉mod_jk,让mod_jk派发给相关的app server去解释。 apache tomcat 整合[apachetomcat]如何整合Apache与Tomcat 五1)我们需要在Apache中装一个mod_jk2)我们需要在httpd.conf中写表达式下图中关键的是这两句:LoadModule jk_module modules/mod_jk.soJKWorkersFile conf/workers.properties代表:ü Apache载入一个额外的插件,用于连接tomcat。ü 连接时的配置参数描述位于Apache安装目录的/conf目录下的一个叫workers.properties文件中,准备两个版本一致的Tomcat,分别起名为tomcat1,tomcat2。[apachetomcat]如何整合Apache与Tomcat 六Worker.properties文件内容如下:图中的这些设置的意思用中文来表达就是:ü 两个tomcat,都位于localhostü 两个tomcat,tomcat1用8019,tomcat2用8029与apache保持jk_mod的通讯两个配置,见百度经验/article/636f38bb5fe8e9d6b946105f.html[apachetomcat]如何整合Apache与Tomcat 七通过ip访问和域名访问,访问成功
相关阅读: &
推荐阅读当听到以下名字你会想到什么:贝克汉姆、徐克、李宗盛、《七里香》中的周杰伦以及哈里?波特魔法学校的邓布利多校长?如果你脱口而出的是“胡须”,那就要恭喜你答对了!可别小瞧胡须,它不仅是男人的天然饰品,更是提升男人味的重要砝码!可01-0125266℃摘要:本文从句子结构这一切入点入手,从五个方面研究分析了英汉句子结构的差异。透知语言差异,把握原文涵义,遵循翻译规律,这些对英语教学和翻译实践都至关重要。关键词:英汉对比;结构差异;句子翻译中图分类号:G427文献标识码:A 编号:1992-701-0116282℃探寻中国当代公共艺术的登场01-013964℃1_注意选药 老年人合理用药指导老年人的疾病产生原因比较复杂,相同的症状可能由不同的疾病及病因所引起,因此选用药物也要有较强的针对性才能达到预期的治疗目的。2_注意不良反应由于老年人容易发生药物不良反应,所以老年人的药物01-0119382℃摘要:本文首先阐述了小学生从众心理的概念及特点。然后,结合上述概念及实际教学情形提出了在从众心理条件下的班级管理的途径。关键词:小学班主任;从众心理;班级管理随着我国社会的持续进步和教育事业的不断发展,学者和社会有识之士已01-0120678℃这里说的爱情故事也许让一些读者失望,但是当我说完这个故事后,相信也有一些读者会感到一丝震动。话说二十世纪七十年代,我们香椿树街有一对老夫妇,当年是六七十岁的样子。妻子身材高挑,白皮肤,大眼睛,看得出来年轻时候是个美人;丈夫虽然01-0118450℃
[八门神器安装教程]八门神器iOS安装图文教程分享——简介被iPhone/iPad游戏玩家称为“金手指”的八门神器日前终于更新完美支持iOS7了[详细]。不过,对于这样一款修改、破解游戏的万能法宝,不少新入01-0115689℃

我要回帖

更多关于 apache与tomcat的整合 的文章

 

随机推荐