Ubuntu12.04下apache与tomcat整合

本文介绍如何在Ubuntu系统中整合Apache2与Tomcat。通过安装mod_jk模块实现请求转发,并详细配置workers.properties文件以指定不同的Tomcat实例处理特定域名请求。此外,还介绍了如何设置虚拟主机及解决配置过程中可能出现的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


tomcat默认安装路径及相关文件

应用、日志和配置文件都在这个目录下 : /var/lib/tomcat7

全局配置文件和启动脚本 : /etc/init.d/tomcat7

bin文件: /usr/share/tomcat7


另外一篇值得参考的文章:

http://blog.sina.com.cn/s/blog_72cbc7190101d6wx.html

里边说的红色字最好自己进去验证下,因为不同版本配置会有变化,如稳重说到的tomcat的8009端口没有被注释,我安装的tomcat7是注释掉的。

还有特别提醒一下,默认的worker的名字是ajp13_worker


这里还有一篇做参考:

http://www.cnblogs.com/junsong/archive/2012/07/03/2574447.html



本文主要讲在ubuntu下如何整合apache2与tomcat,假设你已经安装了apache2和tomcat

首先安装mod_jk,这个模块负责转发请求到tomcat

sudo apt-get install libapache2-mod-jk

安装完后,在/etc/apache2/mods-enabled下会多出一个jk.load文件,重启apache2后,apache自动装载这个文件以加载mod_jk.

查看jk的配置文件

$ cd /etc/apache2/mods-available

$ sudo vi jk.conf


JkWorkersFile 这条指令指明worker配置文件的位置,默认是/etc/libapache2-mod-jk/workers.properties。

那什么是worker呢?tomcat worker就是一个tomcat实例。

 

JkMount /*   这句话的意思是把所有的请求都交给tomcat处理,默认是注释掉了的,因为写在这里是全局的。

我们想要依据hostname来配置转发规则,所以不写在这里。

 

接下来我们编辑workers.properties

$ sudo vi /etc/libapache2-mod-jk/workers.properties


注意里边设置的

workers.tomcat_home和workers.java_home可能与你实际的不一致,所以要修改

其他内容可以按默认配置


如果有多个虚拟主机,用以下的配置:

worker.list=worker1,worker2

 

# Set properties for worker1

worker.worker1.type=ajp13  

worker.worker1.host=localhost  

worker.worker1.port=8009

worker.worker1.lbfactor=50  

worker.worker1.cachesize=10  

worker.worker1.cache_timeout=600  

worker.worker1.socket_keepalive=1  

worker.worker1.socket_timeout=300

 

# Set properties for worker2

worker.worker2.type=ajp13  

worker.worker2.host=192.168.1.10

worker.worker2.port=8009

worker.worker2.lbfactor=50  

worker.worker2.cachesize=10  

worker.worker2.cache_timeout=600  

worker.worker2.socket_keepalive=1  

worker.worker2.socket_timeout=300

 

在这里我们定义了两个worker一个是在本地,一个在192.168.1.10上。

worker.worker1.port=8009 8009端口是apahce mod_jk与tomcat交换数据的端口,这个端口要与tomcat

的配置文件中的一致.在tomcat目录/conf/server.xml里,应该有如下行:

<!-- Define an AJP 1.3 Connector on port 8009 -->

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

如果你的tomcat这里配置的是其它端口,你也要修改worker.properties中的相应端口号。

 

假设apache所在的服务器ip绑定了两个域名,一个为blog.mysite.com,另一个为bbs.mysite.com

假设worker1所在的tomcat部署着blog程序,worker2所在的tomcat提供bbs服务。

 

blog.mysite.com的apache的虚拟主机的配置文件内容如下:

 

<VirtualHost *:80>

ServerAdmin webmaster@localhost

ServerName blog.mysite.com

    JkMount /* worker1

</VirtualHost>

 

bbs.mysite.com的apache的虚拟主机的配置文件内容如下:

 

<VirtualHost *:80>

ServerAdmin webmaster@localhost

ServerName bbs.mysite.com

    JkMount /* worker2

</VirtualHost>

 

如果blog.mysite.com和bbs.mysite.com部署在同一个tomcat下,也就是我们只有一个worker,那么我们

需要在tomcat的配置文件加入虚拟主机的配置。修改tomcat目录/conf/server.xml,加入下面的配置内容即可。

 

<Host name="bbs.mysite.com"  appBase="/var/www/tomcat-webapps/bbs.mysite.com"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

 

</Host>

<Host name="blog.mysite.com"  appBase="/var/www/tomcat-webapps/blog.mysite.com"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

</Host>


重启apache2的时候出现了问题,提示主机名有问题,使用127.0.1.1什么的...

只需要在/etc/apache2/httpd.conf中加入一行

ServerName localhost

就不会有这个提示了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值