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

Ubuntu下apache与tomcat整合

2013-06-25 10:43 337 查看
本文主要讲在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

输入如下内容

# 指出mod_jk模块工作所需要的工作文件workers.properties的位置

JkWorkersFile /etc/apache2/workers.properties

# Where to put jk logs

JkLogFile /var/log/mod_jk.log

# Set the jk log level [debug/error/info]

JkLogLevel info

# Select the log format

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# JkOptions indicate to send SSL KEY SIZE,

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format

JkRequestLogFormat "%w %V %T"

# 将所有请求都让tomcat来处理

#JkMount /* worker1

JkWorkersFile 这条指令指明worker配置文件的位置。那什么是worker呢?tomcat worker就是一个tomcat

实例。

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

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

接下来我们编辑workers.properties

$ sudo vi /etc/apache2/workers.properties

内容如下:

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: